我遇到一个问题,我在下拉列表中有一个预先选择的值正确显示,但它现在在下拉列表中显示两次。以下是我的代码,它支持预期与实际结果。
控制器:
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在被选中时出现一次。知道我做错了什么以及如何达到预期效果吗?
答案 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