angular2-multiselect-dropdown显示空列表

时间:2017-12-07 06:08:55

标签: angular select dropdown multi-select

我正在使用angular2-multiselect-dropdown,但下拉列表是空的。

以下是ts文件中的数据:

this.list = [
{
   "docid":1,
   "value": "Europe"
},
{
   "docid":2,
   "value": "ASIA"
},
{
   "docid":3,
   "value": "AFRICA"
},
{
   "docid":4,
   "value": "LATIN AMERICA"
},
{
   "docid":5,
   "value": "NORTH AMERICA"
}

]

在HTML中:

<angular2-multiselect [data]="List" [(ngModel)]="selectedItems" 
        (onSelect)="onItemSelect($event)" 
        (onDeSelect)="OnItemDeSelect($event)"
        (onSelectAll)="onSelectAll($event)"
        (onDeSelectAll)="onDeSelectAll($event)">
      </angular2-multiselect>

在示例中,他正在使用{“id”:9,“itemName”:“Italy”},效果很好。那么是否可以配置字段itemName。

https://github.com/CuppaLabs/angular2-multiselect-dropdown https://cuppalabs.github.io/angular2-multiselect-dropdown/#/basic

3 个答案:

答案 0 :(得分:1)

也许,我在你的代码中发现了一个错误。

<angular2-multiselect [data]="list" [(ngModel)]="selectedItems" 
        (onSelect)="onItemSelect($event)" 
        (onDeSelect)="OnItemDeSelect($event)"
        (onSelectAll)="onSelectAll($event)"
        (onDeSelectAll)="onDeSelectAll($event)">
      </angular2-multiselect> 

而不是[data]="List",您需要编写[data]="list"

然后,在上面的评论中添加方法map

答案 1 :(得分:1)

组件期望以某种形状填充[data]属性。在这种情况下,它应该如下:

export class ListItem{
    id: Number;
    itemName: String
}

在将列表设置为数据输入之前,您必须转换列表。

您可以使用map来完成此操作。

this.list = this.list.map((item) => {
  return {
    id: item.docId,
    itemName: item.value
  }
})

答案 2 :(得分:0)

将以下属性添加到angular2-multiselect HTML标签。 [settings] =“ dropdownSettings”

并如下配置labelKey dropdownSettings.labelKey ='value'而不是默认的itemName;