我有一个包含数百个选择元素的表单。当用户保存表单时,我正在保存JSON,当他们重新加载时,使用JS代理将其拉回来。我正在寻找一个好的/干净的方式来从JSON中的值设置选项值。最好不要为这些中的每一个枚举数组,并根据它与值匹配的索引进行设置。
模板:
<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
}
答案 0 :(得分:5)
此处您需要做的就是使用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