私のコンポーネントには可変オブジェクト入力があります。オブジェクトのプロパティが変更された場合、コンポーネントのngOnChanges
は呼び出されません。簡単に分かります。しかし、ディスプレイは正しく変更されました。angular2:ngOnChangesは呼び出されませんが、正しく表示が変更されます
マイコンポーネントhero-card
:
export class HeroCardComponent implements OnChanges , DoCheck {
@Input()
Hero: Hero;
@Input()
Title: string;
ngOnChanges(changes: SimpleChanges) {
for (const propName in changes) {
const chng = changes[propName];
const cur = JSON.stringify(chng.currentValue);
const prev = JSON.stringify(chng.previousValue);
console.log(`${propName}: currentValue = ${cur}, previousValue = ${prev}`);
}
}
}
それはテンプレートです:
{{Title}}<br>
Hero title : {{Hero.title}}<br>
Hero name : {{Hero.name}}<br>
私はhero.nameと結合する双方向を持っている入力にhero.nameを変更しました。
角度が実際に変更を確認できましたか?
変更されたオブジェクトでも表示が変更されたように見えます。はい、素晴らしいです!
ただし、ngOnChanges
は呼び出されません。それは角度が変化をチェックしていないようだった。変更しても反映しなくても、すべてのビューをリセットすることができます。
私に真実を伝える人はありますか?ありがとう!
タイトルを入力 – Sajeetharan
ええ、「タイトル」と「名」はない英雄の財産でありますヒーローオブジェクトのプロパティ。ヒーローオブジェクトは入力 –
ですので、どのようにngOnChangesのタイトルを期待していますか?それは入力でのみ動作します – Sajeetharan