私のアイテムリストのビューを更新しようと数時間苦労しています。ngFor内の角2のコンポーネントは更新されません
私はdocument-list
というコンポーネントを持っています。 このコンポーネントは、渡された各ドキュメントを通過し、document-list-item
というコンポーネントを含みます。
ドキュメントのリストを更新すると、子ビューは更新されません。
Iはdocument-list
成分のdocuments
アクセッサのものを試した:
public set documents(value: DocumentDetails[]) {
this._documents = value;
// used one by one
this.changeDetector.detectChanges(); => doesn't work
this.changeDetector.markForCheck(); => doesn't work
this.appRef.tick(); => throw an error about recursivity
}
Iはまた、(ウェル配置にconsole.logは、それが中に行くことを私に示した)手動セッターにリストを更新しようとした:
private _documents: DocumentDetails[] = [];
@Input()
public set documents(value: DocumentDetails[]) {
this._documents = [];
for (let i = 0; i < value.length; i++) {
this._documents[i] = value[i];
}
}
public get documents() {
return this._documents;
}
アクセサでこれをやっていた作品だけの事:
public set documents(value: DocumentDetails[]) {
this.documents = [];
setTimeout(() => {
this._documents = value;
}, 0);
}
それはうまくいったが、文書配列が更新されるたびに点滅するリストが表示されたが、これは受け入れられない。
すべてのヘルプは、あなたが持って歓迎
をあなたはplunkerを作成できますか? – yurzui
https://plnkr.co/edit/AZhKuZnFYqWbRekmMLwd?p=preview – yurzui
コンポーネントの中で 'this.documents'ではなく' this._documents'の配列を埋めるようですが、htmlでは 'documents'を使用します – Maxim