绑定ng-options数组的一个属性

时间:2014-06-23 08:58:14

标签: javascript angularjs ng-options

我有以下数组:

[{code: "AF", name: "Afghanistan"}, {code: "ZA", name: "South Africa"}, {code: "AL", name: "Albania"}]

我有一个选择,并且只想将我的ng-model绑定到所选对象的code属性而不是整个对象。但另一方面,我希望我的选择只显示名称(而不是代码)。另外,我希望如果我将ng-model设置为代码,它会在选择中预先选择名称。

我尝试了以下(Jade)

select(ng-model='myCountry', ng-options='country.name for country in countries track by country.name')

这里我的ng-model获取整个对象(myCountry = {code:“AF”,名称:“Afghanistan”})而不仅仅是代码(myCountry =“AF”)

有可能吗?

1 个答案:

答案 0 :(得分:7)

您可以使用:

  <div>
    <select ng-model="country" ng-options="country.code as country.name for country in countries"></select>
    Selected country (ng-model): {{country}}
  </div>

country.code - 将用作ng-model属性。

country.name - 将用于在选择中显示该项目。

See the demo here

如果您想将select选项设置为预先选择的值,只需使用country模型提供值。