给出以下选择代码:
<select ng-options="fieldType.value as fieldType.key for fieldType in fieldTypes"
ng-model="item"></select>
我正在尝试从控制器更改ng-model
的{{1}}:
select
我有错误,有什么办法吗?或者这不是一个好方法?
答案 0 :(得分:1)
您必须将item
设置为ng-options
数组中某个对象属性的引用,因为Angular使用对象引用进行比较。
此外,item
不是全局命名空间中存在的东西(希望如此),因此您需要通过$scope
引用它。
$scope.changeTheSelected = function(){
$scope.item = $scope.fieldTypes[0].value;
}
请参阅Plunker demo
由于您还要绑定到String,您也可以
$scope.changeTheSelected = function(){
$scope.item = 'textbox';
}
您的原始问题缺少$Scope
,因此您设置了一个名为item
的全局变量,而不是实际更改模型。
请参阅Plunker demo
我会推荐第一种方法,但它更强大。