ng-multiselect-dropdown - 类型错误:无法读取未定义的 'idField' 属性

19
4个回答

113
我遇到了同样的问题,我通过将[settings]参数放在[data]参数之前来解决它。
示例:
    <ng-multiselect-dropdown
        [settings]="dropdownSettings"
        [data]="dropdownList"
        [(ngModel)]="selectedItems"
    >
    </ng-multiselect-dropdown>

@Tomislav:这对我有用,但你能告诉我为什么将设置移动到[data]后它才起作用吗? - Kapil Soni
从文档中得知:@Kapilsoni 的数据应该是一个数组,包含 id 和 text 属性的对象。您还可以使用自定义属性,此时需要映射 idField 和 textField 属性。为了方便,您也可以传递一个字符串数组,在这种情况下,相同的字符串用于 ID 和文本(不需要映射)。 - Tomislav Stankovic
这很奇怪,但它解决了问题。这个问题背后可能是什么原因? - Anup Bangale
这确实有效。背后的原因是什么? - Lalit Bangad
工作正常! - Billu

4
请设置。
dropdownSettings:IDropdownSettings = {
..Other settings,
idField: 'id',
textField: 'text'};

将您的下拉列表设为:

dropdownList= [{id: '1', text: 'Sample Text'}, ..]

按照Abraham Cm的说法,在HTML中设置 [data] 前应先设置[settings]。


在数据处理之前添加设置对我很有效。 - Jaseem Abbas

2

是的,以上解决方案(在[data]之前具有[settings]绑定)能够工作,因为ng-multiselect-dropdown在datasettings输入中都有设置器。 data设置器使用settings输入。所以在这种情况下,顺序很重要。一开始它也让我感到惊讶。请查看源代码:enter image description here


1

我通过以上两个步骤解决了问题,但我需要重新启动应用程序,才能使应用程序成功运行。

  1. 顺序很重要,即[设置]在[数据]之前
  2. 在组件中必须正确初始化设置
  3. 通过关闭和打开vs代码项目来重新启动应用程序。即使导入模块时出现问题,也需要这样做。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接