gpt4 book ai didi

angularjs - 使用 ng-options 选择且模型中未设置默认值的 IE10 始终选择下拉列表中的第一个元素

转载 作者:行者123 更新时间:2023-12-02 21:58:37 24 4
gpt4 key购买 nike

我正在使用 Angular v1.0.8

我有一个选择,我正在使用 ng-options 指令用我的 Controller 中声明的数据数组填充它。

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 )

只有当 Controller 中没有设置默认选择时才会发生这种情况。删除“空白”选择后完成的后续选择将被正确设置。

我怀疑它可能是 This issue 的重复项但我并不完全确定。我并没有真正动态地改变这里的选项,尽管我想 Angular 可能是这样,因为“空白”选项在两个浏览器中都被删除了。

但是我确实想要这个功能。我不想为此选择提供默认值,因为用户需要为我做出主动选择。

有人知道这个问题的解决方法和/或解决方案吗?最好不涉及使用 JQuery 搞乱选项...

最佳答案

Angular 添加的空白项有一些奇怪的行为。我们解决这个问题的方法是显式添加我们自己的空白项目并通过 Controller 选择它:

angular.module('app', []).controller('SelectCtrl', ['$scope', function($scope) {

$scope.options = [
{ key: 0, caption: ' ' },
{ key: 1, caption: '1' },
{ key: 2, caption: '2' },
{ key: 3, caption: '3' },
{ key: 4, caption: '4' },
{ key: 5, caption: '5' }
];

$scope.selected = $scope.options[0]

}]);

关于angularjs - 使用 ng-options 选择且模型中未设置默认值的 IE10 始终选择下拉列表中的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19388030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com