私はこのようになります角度2コントローラー持っている:角2:コンポーネントの属性の属性変更を検出するにはどうすればよいですか?
@Component({
selector: 'my-component',
template: '<div>The value is: {{ value }}</div>',
})
class MyComponent implements OnInit {
@Input()
value: string;
@Output
valueChange = new EventEmitter<number>();
ngOnInit() {
this.valueChange.subscribe(value => {
console.log('new value:', value); // <-- does not get triggered
});
}
}
をしかし結合テンプレートからvalue
の値が変化したとき:
<my-component [value]="someValue" /> <!-- valueChange not triggered! -->
がvalueChange
イベントがそのようにトリガされません、テンプレートが正しく更新され、新しい値が表示されても、コンポーネントは変更されたことを認識しません。
コントローラの入力属性が変更されたときは、どのように検出できますか?
\ @Componentデコレータ*のinputsプロパティを使用するか、setプロパティで\ @Inputデコレータを使用できます。彼らは現在両方の作業を行っており、\ @Inputデコレータは現在の優先する方法のようです。 –
getアクセサには値を設定することはできません。getメソッドを{get}(){}に更新することができます。 あなたの '@ output'も' @Output() 'に更新する必要があります。 –