Angular.js从散列/对象中选择

时间:2013-02-19 22:07:43

标签: angularjs

我有一个简单的下拉列表:

 {{x}}            
 <select ng-model="x" ng-options="k for k in [1,2,3]"></select>

easy:{{x}}将替换为选定的值1,2或3。

但是,如果我的数据看起来像这样呢?

 <select ng-model="x" ng-options="k.a for k in [{a:1},{a:2},{a:3}]">

根据选择,我想要那些,三,三,但我通常得到“{a:1}”。

嗯... this表明我可能不会得到我想要的东西。想法?

1 个答案:

答案 0 :(得分:3)

你只缺少一件。

如果查看docs for ng-options,理解表达式可以采用多种形式。

您拥有的表单为label for value in array。使用此表单,当您选择一个选项时,它会为您提供数组项的整个值,在您的情况下类似于{a: 1}

您可以使用的其他表单之一是select as label for value in array。你在from中添加了一个额外的表达式, 表达式的结果将绑定到你的模型。

类似于:

ng-options="k.a as k.a for k in [...]"

然后,您将获得所选数组项的a属性的值。

Here's a fiddle for you