如何使用ng:选项设置选项值

时间:2013-02-13 17:10:05

标签: angularjs

显然,AngularJS无法在IE中正确构建<option>元素列表作为简单模板,因此它提供了ng:Options指令(参见https://github.com/angular/angular.js/issues/235)。

在查看源代码后,我能够使用所需的标签构建选项,如下所示(JSFiddle):

<!-- what I'd like to do -->
<select>
    <option ng:repeat='key in keys' value='{{key}}'> {{lookup[key].firstName}} {{lookup[key].lastName}} </option>
</select>
<br/>
<br/>
<!-- what Angular lets me do -->
<select ng-model='key' ng:options='k as lookup[k].firstName + " " + lookup[k].lastName for k in keys'></select>

但是,当我使用Firebug检查选项时,我看到该值是一​​个数字索引,而不是我想要的键值(我希望初始k将用作选项值)。

我没有深入研究代码,所以不知道表达式的另一部分我是否缺少(正则表达式似乎没有任何其他相关的关键字)。

我希望这里的某个人能够很好地了解这个指令,告诉我(1)如何做到这一点,或者(2)我运气不好。

1 个答案:

答案 0 :(得分:1)

您所需的键值位于您通过ng-model指定的属性中,即key。将{{key}}添加到HTML的底部(在最后一个选择列表之后)以查看它。

正如您所发现的,Angular将数组索引存储在HTML中。有关详细信息,请参阅AngularJS - value attribute for select