AngularJS使用ng-options </select>从JSON模型设置默认的<select>值

时间:2015-04-20 00:31:49

标签: angularjs html-select ng-options angularjs-ng-options

我有一个包含数百个选择元素的表单。当用户保存表单时,我正在保存JSON,当他们重新加载时,使用JS代理将其拉回来。我正在寻找一个好的/干净的方式来从JSON中的值设置选项值。最好不要为这些中的每一个枚举数组,并根据它与值匹配的索引进行设置。

jsfiddle

模板:

<div ng-app="myApp">
<div ng-controller="myCtrl">
<select ng-model="jsModel.selVal"ng-options="myVal.value for myVal in myValArr"/>
</div>

app.js:

var myApp = angular.module('myApp',[]);

function myCtrl($scope) {
  $scope.myValArr = [{ value: 'Yes' }, { value: 'No' }]; 
  $scope.jsModel = ({ selVal: 'Yes' }); // Returned from proxy call
}

2 个答案:

答案 0 :(得分:5)

Demo

此处您需要做的就是使用ng-options时它应该与选定的对象格式匹配。{/ p>

<div ng-app="myApp">
<div ng-controller="myCtrl">
    <select ng-model="jsModel.selVal" ng-options="myVal.value as myVal.value for myVal in myValArr"/>
</div>

检查上述模板中的 ng-options 。有关详细信息,请参阅angular ng-options的文档。

您的错误:您的选择元素是在ng-model中设置整个对象,默认情况下,您只是尝试设置属性的值。因此两者都不匹配。希望你理解或让我知道。

答案 1 :(得分:0)

考虑到你的范围,这样的事情应该可以实现:

<强> HTML

<select ng-model="jsModel.selVal">
    <option ng-repeat="val in myValArr" value="{{val.value}}">{{val.value}}</option>
</select>

有关更高级的用例,请结合ngOptions

查看select directive