我有一個角2控制器,它看起來是這樣的:Angular 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 value(){}' 我認爲你的'@ output'也可能需要更新爲'@Output()' –