あなたはうまくやってくれれば幸いです。ここでは、フロントエンドの開発から始まります。質問が愚かであるか、コードがひどいように見える場合はごめんなさい(修正は非常に歓迎されます)。Datatable内のドロップダウンはバインドされたオプションを事前選択しません[PrimeNG]
私はDataTableの内部ドロップダウン要素を持っている:
<p-dataTable [value]="Items">
<p-column field="Destination" header="Destinos">
<ng-template let-col let-item="rowData" pTemplate="body">
<p-dropdown [ngModelOptions]="{standalone: true}" [(ngModel)]="item[col.field]" appendTo="body" [options]="Destinations">
</p-dropdown>
</ng-template>
</p-column>
<!-- more columns-->
</p-dataTable>
目的地はここにロードされます。
this.destinationService.getDestinations().
subscribe((res: Array<Destination>) => {
res.forEach(element => {
this.Destinations.push({ label: element.Name, value: element.id });
});
});
送信ボタンを押したとき、それはJSONを生成します。そして、この "Creation"テンプレートは魅力的なものです。保存されるオブジェクトは推定値であり、estimate.Providerには正しい属性値があります。これはselect/option 'value'から取られた数値ですので、バインディングはここで完璧です。
「EDIT」テンプレートにこの推定値をロードすると、it hasn't nothing selectedが含まれているため、すべてが「Destinations」以外のドロップダウンリストをロードします。
私は、estimate.Providerが2の場合、 'Value'が2になる 'auto-select'オプションは使用しないでください。少なくとも、ネイティブのドロップダウンがどのように機能するか(値が正しく読み込まれているかどうかをチェックします。 さらに、primengのドロップダウンはデフォルトでドロップダウンにロードされた最初の値を選択するので、デフォルトとしての空の値は奇妙だと思います。それから私がそれをクリックすると、それは完全に動作します。 displays the options as it should do。
私は奇妙なことが起こっていると信じて、何か重要なことを逃しています。
私は何をすべきかわかりません。ありがとうございました