Angularjs IE 8选择n+1索引

Angularjs IE 8选择n+1索引,angularjs,Angularjs,在IE 8中,如果我有这样一个选择列表 <select required ng-options="n for n in monthNumbers" ng-model="month"> </select> …然后,Angular在中添加一个空白的第一个选项。然后,当我选择任何选项时,IE 8将选择它后面的选项。因此,如果我选择第1个月,它将选择第2个月 如果我添加这样的初始元素 <select requ

在IE 8中,如果我有这样一个选择列表

            <select required ng-options="n for n in monthNumbers" ng-model="month">
            </select>
…然后,Angular在中添加一个空白的第一个选项。然后,当我选择任何选项时,IE 8将选择它后面的选项。因此,如果我选择第1个月,它将选择第2个月

如果我添加这样的初始元素

        <select required ng-options="n for n in monthNumbers" ng-model="month">
           <option></option>
        </select>
。。。那么问题就解决了。但是,如果选择了我想要的任何其他项,Angular将不会删除空的第一个元素

有什么好办法吗?

使用如下ng选项:

<select required ng-options="month.value as month.label for month in months" ng-model="month"></select>

我在手动添加的初始选项中添加了ng disabled=true,这会阻止人们在IE 8中选择它们


在ng init上为您的ng模型赋值,如果您在加载控制器时未为模型赋值,它发现模型为空

n的第一个值是什么?你能添加一个JSFIDLE或Plunker吗?我认为它们在IE 8中不起作用。它在IE 8中的作用似乎是,当你选择一个值时,没有删除添加的初始空元素,然后当你尝试选择另一个元素时,第一个元素无效,因此它会选择下一个元素实际上,当你第一次选择一个项目时,选择菜单就起作用了。之后,angular将删除空选项,但IE8不会从用户单击“选择”菜单时打开的选项列表中删除该选项。如果您使用IE8开发者工具检查元素,那么您会看到empty选项消失了。IE8只是懒得更新UI,这就是为什么选项值会变为1。ng-options可以正常工作。这是一个像这样的数字数组$scope.monthNumbers=[0,1,2,3,4,5,6,7,8,9,10,11];这可能是一个评论