2016-08-23 7 views
6

角1.xでは、私が望むものを見るために使うことができましたが、角2ではngOnChangesがありますが、これは本当にクールでパフォーマンスは良いですが、出力デコレータ。しかし、時々、ローカルのプロパティを監視する必要があります。そのため、変更されたときにイベントを発行することができます。 Angular 2に単一のプロパティを見るように明示的に指示する方法を説明した記事を見たのは覚えていますが、私の人生ではもう記事を見つけることができず、すべての検索でonChangesで入出力デコレータを使用するように指示しています。 @ViewChildやその他のローカルプロパティのウォッチャーを作成するにはどうすればよいですか?@Inputまたは@Outputなしの角2の時計コンポーネントプロパティ

例えば、私はngFormを持っています。それは、検証状態が有効から無効に変わるとき、または逆のときに別のコンポーネントに状態を放出して反応するようにしたいということです。しかし、私のngFormは@ViewChildであり、@ Inputまたは@Outputではないので、ngOnChangesは変更を検出しません。

答えて

11

カスタムアングル1 $watch()とアングル2の対応は、ライフサイクルフックngDoCheck()を実装し、独自のチェックを実行することです。 Lifecycle Hooks開発者ガイドはan exampleです。

ngDoCheck()メソッドは、変更検出が実行されるたびに(角度1時計と同じように)呼び出されるため、可能な限り効率的に実装されていることを確認してください。

可能であれば、より効率的であるため、RxJS(観測可能、件名など)を使用するようにしてください。私たちはused to be able to subscribe to the NgForm's ControlGroup to be notified of changesですが、まだ利用可能かどうかはわかりません。

+1

どのようにngModelChange? – Toolkit

関連する問題