Decorator

1 at first, we use the (keyup) event handler to update the modify

@Component({
    selector: ‘my-app‘
})

@Template({
    inline: ‘<h1>{{myName}}</h1>‘ +
    ‘<input type="text" #newname (keyup)/>‘ +
    ‘<h3 [style.color]="newname.value">{{newname.value}}</h3> ‘

})

but, if i wanna do something more when I use the keyup in all the input keyup?

we use the Decorator to decorator the event

2 import the Decorator

import {Component, Template, bootstrap, Decorator} from ‘angular2/angular2‘;

3 define the Decorator

@Decorator({
    selector: ‘input‘,
    events: {‘keyup‘: ‘onKeyUp()‘}
})

class InputDecorator {
    onKeyUp() {
        console.log(‘do nothing‘);
    }
}

4 use the decorator

@Template({
    inline: ‘<h1>{{myName}}</h1>‘ +
    ‘<input type="text" #newname />‘ +
    ‘<input type="text" #test/>‘ +
    ‘<h3 [style.color]="newname.value">{{newname.value}}</h3> ‘,
    directives: [InputDecorator]

})

5 the whole page code

import {Component, Template, bootstrap, Decorator} from ‘angular2/angular2‘;

@Decorator({
    selector: ‘input‘,
    events: {‘keyup‘: ‘onKeyUp()‘}
})

class InputDecorator {
    onKeyUp() {
        console.log(‘do nothing‘);
    }
}

@Component({
    selector: ‘my-app‘
})

@Template({
    inline: ‘<h1>{{myName}}</h1>‘ +
    ‘<input type="text" #newname />‘ +
    ‘<input type="text" #newnam />‘ +
    ‘<h3 [style.color]="newname.value">{{newname.value}}</h3> ‘,
    directives: [InputDecorator]

})

class MyApp {

    constructor() {
        this.myName = ‘Jackey‘;
        this.myFriends = [
            {name: ‘Jackey1‘, age: 25},
            {name: ‘Jackey2‘, age: 26}
        ];
    }
}

bootstrap(MyApp);

  

时间: 2024-10-20 06:40:51

Decorator的相关文章

设计模式之Decorator(油漆工)(转)

Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee.这两种实体在Decorator模式中是必须的. Decorator定义: 动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活. 为什么使用Decorator? 我们通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势

装饰器模式 decorator

所有的说明和解释都在代码中有注释来标明 package mode.decorator; /** * * 这里定义一个接口,在接口中定义我们要执行的操作. * * 以后所有的装饰器以及我们要装饰的对象都要实现这个接口.有了这样的大前提,我们就可以其用 Sourcable来定义我们的装饰器和要装饰的对象了 * * */ public interface Sourcable { public void operation(); } package mode.decorator; /** * * 所有的

python decorator 基础

转自:http://www.cnblogs.com/xybaby/p/6274187.html 一般来说,装饰器是一个函数,接受一个函数(或者类)作为参数,返回值也是也是一个函数(或者类).首先来看一个简单的例子: # -*- coding: utf-8 -*- 2 def log_cost_time(func): 3 def wrapped(*args, **kwargs): 4 import time 5 begin = time.time() 6 try: 7 return func(*a

c++ 设计模式6 (Decorator 装饰模式)

4. "单一职责"类模式 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任. 典型模式代表: Decorator,Bridge 4.1 Decorator 装饰模式 代码示例:不同的流操作(文件流,网络流,内存流)及其扩展功能(加密,缓冲)等的实现 实现代码1: 类图结构示意(大量使用继承) 数据规模: 假设有n种文件,m种功能操作.该实现方法有(1 + n + n * m! / 2) 数量级的子

关于Python的装饰器 decorator

语法格式是固定的:先定义一个函数,再使用@语法调用该函数. 例子一: import functools # 定义装饰器,固定格式 def log(func): @functools.wraps(func) # 将func的一些属性赋予wrapper,如__name__ def wrapper(*args, **kw): print('before function %s' % func.__name__) func(*args, **kw) print('after function %s' %

angular中自定义依赖注入的方法和decorator修饰

自定义依赖注入的方法 1.factory('name',function () { return function(){ } }); 2.provider('name',function(){ this.$get=function(){ return function(){ } }; }); 3.service('name',function(){ this.n=v; }); 4.constant('name','value'); 5value('name','value'); 依赖的继承  

TCG开发日志(5)Decorator, React-router

通过webpack可以把整个React项目整合成一个单页面的网站,此时可以通过react-router来处理路由. 首先安装: npm install react-router --save 由于react-router使用了history,要在webpack.config.js中进行相应的配置: devServer: { historyApiFallback: true } 否则,类似localhost:8080/foo的URL会返回404.之后为了将整个项目做成一个单页面,做如下处理: im

[工作中的设计模式]装饰模式decorator

一.模式解析 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰模式的要点主要是: 1.需要对已有对象扩展新的功能,又不希望改变原有对象接口: 2.装饰者对象与原有对象需要继承相同接口,初始化装饰对象时将原有对象传入装饰对象: 3.可以对一个对象定义多个装饰着对象,进行分别装饰或者组合装饰 二.模式代码 1.抽象接口 package decorator.patten; public interface Component { pu

设计模式--装饰者设计模式(Decorator)

装饰者模式又叫包装模式. 通过另一个对象来扩展自己的行为,在不破坏类的封装的情况下,实现松耦合,易扩展的效果. 抽象组件角色: 一个抽象接口,是被装饰类和装饰类的父接口可以给这些对象动态地添加职责. 具体组件角色:为抽象组件的实现类,是定义了一个具体的对象,也可以给这个对象添加一些职责. 抽象装饰角色:包含一个组件的引用,并定义了与抽象组件一致的接口,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator存在的. 具体装饰角色

DesignPattern_Java:Decorator Pattern

装饰模式 Decorator Pattern Attach additional responsibilities to an object dynamically keeping the same interface.Decorators provide a flexible alternative to subclassing for extending functionality. 动态地给一个对象添加一些额外的职责.就增加功能来说,装饰模式比生成子类更为灵活. 抽象构建角色(Compon