私は奇妙な問題があります。私は数時間は解決できません。私のコンポーネントでngOnChanges()でAngular2のプライベート変数が更新されていません
は私が持っている:
@Input() content : string;
private contentPreview : any;
ngOnChanges(changes: SimpleChanges) {
this.contentPreview = changes['content'].currentValue;
console.log(changes['content'].currentValue); // <-- WORKS
}
変数this.contentPreviewは変更されません。私はそれを表示しようとすると、未定義のままです。私がthis.contentPreview = "X"を試しても、コンポーネント内の他の場所では定義されません。
何か不足していますか、それともバグですか?
これは、おそらく、変更検出サイクルが既に終了していることが原因です。したがって、 'content'への単一の変更によってonChangesフックがトリガされ、contentPreview varが更新されますが、変更検出サイクルが終了するため、DOMはそれ以降更新されません。 – MikeOne
おそらくdoCheckフックを使ってこれを解決できます。詳細はhttps://angular.io/docs/ts/latest/guide/lifecycle-hooks.html#!#onchanges – MikeOne
Mike、ありがとう!私はサイクルポイントを得る。しかし、別のイベントの後にプライベート変数を表示しようとしました(コンポーネントをクリックするなど)、値は保存されませんでした。どのように動作するはずですか? –