我有一个简单的下拉列表:
{{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表明我可能不会得到我想要的东西。想法?
答案 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
属性的值。