数据表中的下拉列表不会预先选择'绑定选项[PrimeNG]

时间:2017-05-30 16:25:58

标签: angular drop-down-menu datatable primeng

我希望你做得很好。这里的实习生,只是从前端开发开始,如果问题愚蠢,或代码看起来很糟糕(任何更正都非常受欢迎),那就很抱歉。

我在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

所以我相信一些奇怪的事情正在发生,我错过了一些重要的事情。

我不知道该怎么做。提前致谢

1 个答案:

答案 0 :(得分:0)

我的问题是我正在使用父子组件和“数据源”。 Datatable(在子组件中)通过Input()从Parent Component获取其值,问题是在Input之后而不是之前执行从DB加载Destinations的服务,因此当Destinations为空时模板呈现数据表。我修好了发送&#39;从父母到孩子的目的地而不是在孩子身上加载。

希望它有所帮助。