0

我使用这样一个结构的数组:

[
{"name": "Afghanistan", "code": "AF"},
{"name": "Åland Islands", "code": "AX"},
{"name": "Albania", "code": "AL"},
{"name": "Algeria", "code": "DZ"},...

使用 ng-options 加载选择:

  <select class="form-control" id="country" ng-model="val" ng-options="country.name for country in countryList">
                    </select>

实际上,选择按名称显示国家列表。我希望列表按国家代码而不是对象 {name ... code..} 选择一个选项,因为它现在可以工作。我怎么能那样做?谢谢

4

2 回答 2

2

检查DOC for ng-options,

它说,

对于数组数据源:

数组中值的标签

选择作为数组中值的标签

为数组中的值逐组标记

禁用数组中的值时标签禁用

通过 trackexpr 为数组轨道中的值逐组标记

通过 trackexpr 禁用数组轨道中的值时标签禁用

数组中值的标签 | orderBy:orderexpr track by trackexpr (用于包含带有track by的过滤器)

所以你需要修改你的代码如下,

 <select class="form-control" id="country" ng-model="val" ng-options="country.code as country.name for country in countryList">

这里ng-options="country.code as country.name for country in countryList"

countryList- 是数据源。

country- 是countryList.

country.name- 是选项的名称属性,country这是选项中的标签。

country.code- 是select框中的选定值。

这是演示 Plunker

于 2015-03-25T10:12:47.130 回答
0

您可以通过以下代码按代码选择,

<select id="country" ng-model="val" ng-options="country.code as country.name for country in countryList"></select>

如果您想要整个选定的对象,您可能出于其他原因想要处理

<select id="country" ng-model="mySelectedCountry" ng-options="country as country.name for country in countryList">"></select>
于 2015-03-25T10:22:51.247 回答