Bir direktif var için gönderilen nesne değiştirilebilir ve üzerine bir sınıf kabul eden @Input
olduğunu.angular2 olarak, nasıl özellikleri için onChanges bir @Input
@Directive({selector: 'my-directive'})
@View({directives: [CORE_DIRECTIVES]})
export class MyDirective {
@Input() inputSettings : SettingsClass;
@Input() count : number;
onChanges(map) {
console.log('onChanges');
}
}
yönergesi html kullanılır: settings.count sonra değiştirilir
...
<my-directive [input-settings]="settings" [count]="settings.count"></my-directive>
...
Eğer onChanges
patlayacaktır. Ayarlar sınıfındaki başka bir özellik değişirse, o zaman yanmaz.
nasıl ayarlara herhangi özelliğine bir değişiklik olursa algılayabilir? HTML'nize olarak
Benim tahmin bu (şu anda olduğu:
özel çek yöntemini uygulamak için, öncelikle daha sonra
ngDoCheck()
aşağıdaki gibi kod şey yazabilirsinizSettingsClass
öyle ki sınıfın bir.equals()
yöntemi uygulamak gerekir?) inputSettings' bir nesnenin örneğine başvuru içeriyor ve referans kendisi değişmez çünkü görmek ya da bir rapor etmez, böylece Eğik muhtemelen nesne özelliklerini karşılaştırmak için çalışmaz belki 'çünkü ... çalışmıyor değişiklik. (Yanılıyorsam, yoksa onlar bunu düzeltmek umut umuyoruz.) –Nitekim [Victor ŞAVKIN blog post] (http://victorsavkin.com/post/133936129316/angular-immutability-and-encapsulation) benim varsayımları teyit: "Adres nesnesi değiştirilemiyorsa, başka bir bileşen, yeni bir adres nesnesi oluşturmadan sokak özelliğini güncelleştirebilir. Bu olursa, onChanges kancası çağrılmaz". –
siz de size kod örneğini açıklayınız özelliği aracılığıyla giriş özelliği – Ayyash