我正在使用 Angular v1.0.8
我有一个选择,我正在使用 ng-options 指令用我的控制器中声明的数据数组填充它。
HTML 片段
<body ng-controller="SelectCtrl">
<select
ng-model="selected"
ng-options="o as o.caption for o in options" />
</body>
代码片段
angular.module('app', [])
.controller('SelectCtrl', ['$scope', function($scope) {
$scope.options = [
{ key: 1, caption: '1' },
{ key: 2, caption: '2' },
{ key: 3, caption: '3' },
{ key: 4, caption: '4' },
{ key: 5, caption: '5' }
];
}]);
在 Chrome 中,如果您选择让我们说选项3
,那么正如预期的那样,它会被选中。
但是,在 IE10 中,如果您选择选项,则会选择3
选项1
。
(http://plnkr.co/edit/T9bbEW?p=preview)
仅当控制器中没有设置默认选择时才会发生这种情况。并且在删除“空白”选项后所做的后续选择被正确设置。
我怀疑它可能与This issue重复,但我不完全确定。我并没有真正动态地改变这里的选项,尽管我想也许 Angular 是因为“空白”选项在两个浏览器中都被删除了。
但是我确实想要这个功能。我不想为此选择提供默认值,因为用户需要为我做出主动选择。
有谁知道解决方法和/或解决方案?最好是不涉及使用 JQuery 弄乱选项的...