Aslında, varsayılan olarak Angular2 değişiklikleri algılar. Ancak bu varsayılan davranış DoCheck
arabirimi kullanılarak değiştirilebilir. Senin durumunda
(bir özellik
myObject
nesnesine güncellendi olduğunu tespit, aşağıdaki yaklaşımı kullanabilirsiniz.
prop1
özelliğinin değer güncellenir
@Component({
selector: 'my-component',
(...)
})
export class MyComponent implements DoCheck {
@Input() myObject: MyObject;
differ: any;
constructor(differs: KeyValueDiffers) {
this.differ = differs.find([]).create(null);
}
ngDoCheck() {
var changes = this.differ.diff(this.myObject);
if (changes) {
changes.forEachChangedItem((elt) => {
if (elt.key === 'prop1') {
this.doSomethingIfProp1Change();
}
});
}
}
doSomethingIfProp1Change() {
console.log('doSomethingIfProp1Change');
}
}
, doSomethingIfProp1Change
yöntemi denir
bu plunkr bakınız:. http://plnkr.co/edit/uvOKMXQa9Ik8EiIhb60Y?p=preview
Ben linke sen, benim cevap (bazı hatalar sabit ve çalışan Plunker örneğini eklendi)
. Konu, bir konu için tavsiye bir güncelleme önermek, en iyi uygulama açısından ne önerirsiniz? –