2017-11-14 6 views
-1

次のコードでは、私のコンポーネントに@Test()を追加することができますが、ngOnInitフックにコマンドを追加する必要があり、現在コンポーネント内のフックが置き換えられています。コンポーネントのライフサイクルフックに追加する角度プロパティデコレータ?

function Test(value:any) { 

    return function(target: any, propertyKey: string | symbol) { 

    target.ngOnInit =() => { 
     console.log("This replaces the component's hook") 
    } 

    } 
}  

どうやって追加すればよいですか?

答えて

1

デコレータは実際には単なる関数です。メソッドデコレータはデコレートされているメソッドの値で呼び出され、装飾されるクラスとともにクラスデコレータが呼び出されます。ターゲットは、実際には、我々は飾るクラスになります

function Console(target) { 
    console.log('Our decorated class', target); 
} 

、私たちは今、私たちのデコレータで任意のクラスを飾ると見ることができますを意味します。デコレータ以下

は、単にコンソールにクラスをログに記録しようとしていますコンソールに出力:

@Console 
class ExampleClass { 
    constructor() { 
    console.log('Yo!'); 
    } 
} 

これをlink to detail decoratorから取得しました。 Googleには数多くの例があります。

希望します。

+0

ありがとう、間違いなく。コンポーネントのライフサイクルフックに追加する方法はありますか? –

+0

私はそれについてはあまり検討しませんでした。あなたはその文書に従うことができます。また、これらの装飾を作成したgitで利用可能なライブラリが多数あります。しかし、あなたはそこに入るためにさらに検索することにした –

関連する問題