角度下拉预选值显示两次

时间:2018-05-15 21:42:30

标签: angularjs user-interface drop-down-menu dropdown

我遇到一个问题,我在下拉列表中有一个预先选择的值正确显示,但它现在在下拉列表中显示两次。以下是我的代码,它支持预期与实际结果。

控制器:

this.values =[
  {
    "name": "A",
    "id": "123"
  },
  {
    "name": "B",
    "id": "456"
  },
  {
    "name": "C",
    "id": "789"
  }];
this.defaultValue = 'B';
this.selectedValue = _.find(this.values, value => {
    return value.name = this.defaultValue;
});

模板:

   <div>
          <select
            ng-model="vm.selectedValue"
            ng-options="choice.name for choice in vm.values">
         </select>
    </div>

预计下拉列表:

将B显示为所选值,当您打开下拉列表时,您会看到

A 
B (with a check)
C

实际:显示B作为选定值,当您打开下拉菜单但打开下拉菜单时,您会看到

B (with a check)
A
B
C

正如您在我当前的结果中所看到的,B显示为已选中,但随后又在下拉列表中显示。我只希望B在被选中时出现一次。知道我做错了什么以及如何达到预期效果吗?

1 个答案:

答案 0 :(得分:1)

 <div>
          <select
            ng-model="vm.selectedValue"
            ng-options="choice.name for choice in vm.values track by choice.id">
         </select>
    </div>

在ng-repeat

中使用track