【发布时间】:2014-02-19 06:33:32
【问题描述】:
我在使用 AngularJS 将 json 对象过滤到选择表单元素时遇到问题。这是我到目前为止所得到的。我很难过,任何帮助将不胜感激。
app.js:
var app = angular.module('app', []);
app.controller('MainCtrl', function($scope) {
$scope.showItems = null;
$scope.items = [
{ id: '023', name: 'foo' },
{ id: '033', name: 'bar' },
{ id: '010', name: 'blah' }];
});
singlepageapp.html:
<html data-ng-app="app">
<body data-ng-controller="MainCtrl">
<form>
<select data-ng-model="showItems" data-ng-options="item as item.name for item in items"></select>
</form>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
<script src="app.js"></script>
</body>
</html>
当前结果:
<select data-ng-model="selectedItem" ng-options="item as item.name for item in items" class="ng-pristine ng-valid">
<option value="?" selected="selected"></option>
<option value="0">foo</option>
<option value="1">bar</option>
<option value="2">blah</option>
</select>
想要的结果:
<select data-ng-model="selectedItem" ng-options="item as item.name for item in items" class="ng-pristine ng-valid">
<option value="?" selected="selected"></option>
<option value="023">foo</option>
<option value="033">bar</option>
<option value="010">blah</option>
</select>
【问题讨论】:
-
@CD.. 是的! ng-options 的工作方式相当混乱,这有助于澄清该值不会反映在 html 中,而是在选择时返回。
标签: javascript json angularjs ng-options