@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;
}
}