好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

angular 装饰器(注解)

装饰器/注解 就是一个函数 但它是一个返回函数的函数 它是TypeScript 的一个特性,而非Angular 的特性

  @Emoji() result = 'Hello' ;

export   function   Emoji() {
    return  (target: object, key: string) =>  {
    let val  =  target[key];

    const getter  = () =>  {
        return   val;
    };

    const setter  = (value: string) =>  {
      val  = `/笑哭 ${value} / 笑哭`;
    };

    Object.defineProperty(target, key, {
      get: getter,
      set: setter,
      enumerable:   true  ,
      configurable:   true  
    });
  };
} 

 

<p (click)="handleClick()">你好</p>
 
@Confirmable( '确定执行当前操作?' )
  handleClick() {
    console.log( '点击已执行' );
  }

export   function   Confirmable(message: string) {
    return  (target: object, key: string, descriptor: PropertyDescriptor) =>  {
    const original  =  descriptor.value;
    descriptor.value  =  function   (...args: any) {
      const allow  =  window.confirm(message);
        if   (allow) {
        const result  = original.apply( this  , args);
          return   result;
      }
        return   null  ;
    };
      return   descriptor;
  }
} 

查看更多关于angular 装饰器(注解)的详细内容...

  阅读:45次