私は自分のコンポーネントのp-dialog内にp-datatableを表示しています。ユーザーが以前にこの表から少数の行を選択した場合、次回p-dialogを訪れたときに選択して表示する必要があります。primeng:バインディングの選択プロパティが非同期的にDatatableでない
選択した項目の配列をp-datatableのselection
プロパティに渡しています。ただし、行は画面上で選択されて表示されません。私は同じ行を再度選択した場合は
、私は事前に選択された行が正しくselection
プロパティに保持何とかhtml
にバインドされていないことselection
プロパティ、二度それらを得ます。
*ngIf
でp-dialog全体をラップしようとしましたが、データが受信された後にのみ作成されることを期待しても違いはありません。
選択した行をp-datatableにバインドするにはどうすればよいですか。
<div *ngIf="data && data.length" class="col-sm-12">
<p-dataTable #ListRef [value]="data" rowHover="true" [multiSortMeta]="multiSortMeta" (onRowSelect)="onSelect($event)" [(selection)]="selectedData" (onRowUnselect)="onUnSelect($event)">
<p-column field="launchDate" header="Launch Date" [sortable]="true"></p-column>
<p-column field="endDate" header="End Date" [sortable]="true"></p-column>
</p-dataTable>
</div>
IはまたViewChild
を使用して参照をフェッチし、そこselection
プロパティに値を代入しようとしています。それも違いはありませんでした。
私はngOnInit
の方法で既にdata
とselectedData
が利用可能な場合、問題は発生しないことに気付きました。
アイデア?
選択した項目の配列を選択プロパティ 'selectedData'にどのように渡していますか?割り当て後にビューが更新されない可能性があります。プッシュの代わりにスプレッド演算子を使ってみることをお勧めします。 – TimeTraveler
私は配列を 'selection'プロパティに代入します。 –