【问题标题】:Dropdown inside Datatable won't 'pre-select' binded option [PrimeNG]Datatable 中的下拉菜单不会“预选”绑定选项 [PrimeNG]
【发布时间】:2017-05-30 16:25:57
【问题描述】:

我希望你一切都好。这里的实习生,刚开始前端开发,如果问题很愚蠢,或者代码看起来很糟糕(非常欢迎任何更正),请见谅。

我在数据表中有一个下拉元素:

<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。而这个“创造”模板就像一个魅力。保存的对象是一个估计值,estimate.Provider 有一个正确的属性值,它是一个数字,取自 select/option 'value',所以我认为绑定在这里完美。

但是当我在“编辑”模板中加载这个提到的估计值时,除了“目的地”下拉列表之外,一切都加载完美,因为it hasn't nothing selected

我的意思是,如果estimate.Provider 是2,它不应该是“值”为2 的“自动选择”选项吗?至少,这就是原生下拉菜单的工作方式(我检查了值是否正确加载,以防万一,确实如此)。 此外,我认为默认的空值很奇怪,因为primeng下拉列表默认选择下拉列表中加载的第一个值。然后,如果我单击它,它会完美运行; displays the options as it should do.

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

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

【问题讨论】:

    标签: angular drop-down-menu datatable primeng


    【解决方案1】:

    我的问题是我正在使用父组件和子组件,并且 Datatable 的“数据源”(位于子组件中)正在通过 Input() 从父组件获取其值,问题是从数据库加载目的地的服务在输入之后而不是之前执行,因此当目的地为空时模板呈现数据表。我修复了它从父级向子级“发送”目的地,而不是在子级中加载它。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-04
      • 2016-11-08
      • 2023-03-29
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      相关资源
      最近更新 更多