我希望你做得很好。这里的实习生,只是从前端开发开始,如果问题愚蠢,或代码看起来很糟糕(任何更正都非常受欢迎),那就很抱歉。
我在Datatable中有一个Dropdown元素:
<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。这个&#34;创造&#34;模板就像一个魅力。保存的对象是估计值,而估计.Provider具有正确的属性值,这是一个数字,取自select / option&#39; value&#39;,所以我认为绑定在这里很完美。
但是,当我在#34;编辑&#34;中加载这个提到的估计值时模板,除了“目标”下拉列表之外,所有内容都加载完美,因为it hasn't nothing selected。
我的意思是,如果估计。提供者是2,则不应该自动选择&#39;选项的价值&#39;会是2?至少,这是一个本机下拉列表的工作方式(我检查了值是否正确加载,以防万一,确实如此)。 此外,我认为默认值为空值是奇怪的,因为primeng下拉列表默认选择下拉列表中加载的第一个值。然后,如果我点击它,它完美地工作; displays the options as it should do
所以我相信一些奇怪的事情正在发生,我错过了一些重要的事情。
我不知道该怎么做。提前致谢
答案 0 :(得分:0)
我的问题是我正在使用父子组件和“数据源”。 Datatable(在子组件中)通过Input()从Parent Component获取其值,问题是在Input之后而不是之前执行从DB加载Destinations的服务,因此当Destinations为空时模板呈现数据表。我修好了发送&#39;从父母到孩子的目的地而不是在孩子身上加载。
希望它有所帮助。