以下代码允许我向我的组件添加@Test()
,但是我需要向ngOnInit钩子添加一个命令,它当前替换组件中的钩子。
function Test(value:any) {
return function(target: any, propertyKey: string | symbol) {
target.ngOnInit = () => {
console.log("This replaces the component's hook")
}
}
}
我如何添加?
答案 0 :(得分:2)
装饰器实际上只是函数,方法装饰器将使用它正在装饰的方法的值来调用,并且将使用要装饰的类调用类装饰器。
decorator下面只是将类记录到控制台:
function Console(target) {
console.log('Our decorated class', target);
}
目标实际上是我们装饰的类,这意味着我们现在可以用装饰器装饰任何类,并在控制台中看到它输出:
@Console
class ExampleClass {
constructor() {
console.log('Yo!');
}
}
从link to detail decorator获取此信息。谷歌有很多可用的例子。
希望它有所帮助。