【发布时间】:2013-10-23 15:49:21
【问题描述】:
我正在使用 Angular v1.0.8
我有一个选择,我正在使用 ng-options 指令用我的控制器中声明的数据数组填充它。
HTML sn-p
<body ng-controller="SelectCtrl">
<select
ng-model="selected"
ng-options="o as o.caption for o in options" />
</body>
代码sn-p
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 弄乱选项的...
【问题讨论】:
标签: angularjs select internet-explorer-10