角度选择不响应ng模型更改

时间:2016-12-06 14:30:46

标签: javascript angularjs angular-ngmodel

我有一个看起来像这样的选择:

{{vm.selected}}
{{vm.items}}
<select ng-options="item.value as item.label for item in vm.items track by item.value" ng-model="vm.selected">
</select>

我的项目数组如下所示:

this.items = [  
  {  
     "label":"Foo Bar",
     "value":"foobar"
  },
  {  
     "label":"Baz Quux",
     "value":"quux"
  }
];

且项目vm.selected是“foobar”

两个绑定都在select上方正确显示,但未选中该项。当我检查select in developer工具时,我将其作为第一个选择的项目:

<option value="?" selected="selected"></option>

此外,当我使用ng-click="vm.selected = 'quux'"点击此元素时,没有任何更改。 {{vm.selected}}始终更新。有人知道什么是错的吗?

2 个答案:

答案 0 :(得分:1)

根据official ngOption documentation

,您的ng-option表达式无效

引用

  

但这不起作用:

     

item.subItem as item.label for item in items track by item.id

所以你的

  

ng-options="item.value as item.label for item in vm.items track by item.value"

无效。

而是表达以下格式:

  

item as item.label for item in items track by item.id

答案 1 :(得分:1)

track by item.value存在问题。如果删除它,您可以看到在选择值后,vm.selected将正确显示并且选择有效。

http://codepen.io/jusopi/pen/PbeoWN