当我选择不是列表中第一个的项目时,Windows 7/8上的IE11显示第一个。如果我重新选择,问题就会消失。它只在页面加载后发生一次。我还没有在旧版本的IE中测试过。
我也尝试使用旧版AngularJS的代码。相同的代码在Chrome中的行为与预期相同。
这是IE的问题还是有一个已知的解决方法?或者这是代码的问题吗?
HTML:
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/2.2.9/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<select data-ng-model="selecteditem" data-ng-options="item for item in items"></select>
</body>
</html>
JS:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.items = ['item1', 'item2', 'item3'];
$scope.selecteditem = "";
});
设置所选项目值似乎不适用于对象数组。
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<select data-ng-model="selecteditem" data-ng-options="item.name for item in items"></select>
</body>
</html>
JS
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.items = [{name:'item1'}, {name:'item2'}, {name:'item3'}];
$scope.selecteditem = {name:'item1'};
});
的显示
答案 0 :(得分:2)
请问您的解决方案,请见她:http://plnkr.co/edit/imjLXBmGpZReZ63KNWlg?p=preview?
<select data-ng-model="selecteditem" data-ng-options="item for item in items">
<option style="display:none" value=""></option>
</select>
如果您想使用对象数组,则需要通过引用同一对象来初始化所选选项
app.controller('MainCtrl', function($scope) {
$scope.items = [{name:'item1'}, {name:'item2'}, {name:'item3'}];
$scope.selecteditem = $scope.items[0];
});
请参阅plnkr