我正在使用Angular创建一个带有选项的选择元素:
<select ng-model="mySelectedValue"
ng-options="myListItem.name as myListItem.name for myListItem in myList">
</select>
对于数据:
$scope.myList = [
{ name: "option one" },
{ name: "option two" }
];
$scope.mySelectedValue = null;
这呈现:
<select ...>
<option value='0'>option one</option>
<option value='1'>option two</option>
</select>
可以使用`track by myListItem.name更改value属性以复制选项文本,呈现:
<select>
<option value='option one'>option one</option>
<option value='option two'>option two</option>
</select>
但是,Angular似乎没有办法阻止将value属性添加到选项中。即:以下是有效的HTML,但不能使用Angular ng-options渲染(据我所知)https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option?#attr-value
<select>
<option>option one</option>
<option>option two</option>
</select>
由于IE上的问题,显然不建议在选项上使用ng-repeat - https://github.com/angular/angular.js/issues/2809
这是Angular的限制吗?