zoukankan      html  css  js  c++  java
  • 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;
      }
    }
  • 相关阅读:
    工厂模式一
    面向对象的简单理解二
    工厂模式三
    线程的简单学习
    nyoj35 表达式求值
    nyoj305 表达式求值
    poj1298 The Hardest Problem Ever
    poj1363 Rails
    hdu2036 改革春风吹满地
    nyoj467 中缀式变后缀式
  • 原文地址:https://www.cnblogs.com/webmc/p/12051047.html
Copyright © 2011-2022 走看看