我们正试图解决IE 10中一个令人抓狂的错误,其中所选选项的选项标签不会为Angular <select>
呈现。相反,选项的标签显示为{{option}}
,表示无法解析该指令。更糟糕的是,IE 11或更高版本或Chrome中不会发生此问题。以下是相关代码:
HTML:
<select class="settings-select-box" name="LOCATION_UPDATE_FREQUENCY"
id="LOCATION_UPDATE_FREQUENCY"
data-ng-model="configurations.LOCATION_UPDATE_FREQUENCY">
<option data-ng-repeat="option in frequency" value="{{option}}">{{option}}</option>
</select>
在控制器JS代码中,我们将frequency
定义为静态数组,因为选择永远不会改变:
$scope.frequency = ["Never","Daily","Weekly","Monthly"];
用于模型的范围变量是configurations.LOCATION_UPDATE_FREQUENCY
,并使用数据库中的值定义。坚持使用数据库可以在IE 10和其他浏览器上运行,这意味着从UI到服务器的绑定似乎没有问题。
这个错误真正奇怪的是,在IE 10中仍然选择了正确的选项,但标签已损坏或未正确呈现。
以下是进一步说明问题的屏幕截图:
答案 0 :(得分:2)
根据官方文档,你应该使用&#34; ng-value&#34; https://docs.angularjs.org/api/ng/directive/ngValue
<select class="settings-select-box" name="LOCATION_UPDATE_FREQUENCY"
id="LOCATION_UPDATE_FREQUENCY"
data-ng-model="configurations.LOCATION_UPDATE_FREQUENCY">
<option data-ng-repeat="option in frequency" ng-value="{{option}}">{{option}} </option>
</select>