从控制器更改选择的ng-model

时间:2014-06-18 11:02:39

标签: angularjs angularjs-scope

给出以下选择代码:

<select ng-options="fieldType.value as fieldType.key for fieldType in fieldTypes" 
        ng-model="item"></select>

我正在尝试从控制器更改ng-model的{​​{1}}:

select

我有错误,有什么办法吗?或者这不是一个好方法?

1 个答案:

答案 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

我会推荐第一种方法,但它更强大。