如何将数组传递给有角度的ng-options?

时间:2015-05-10 01:45:51

标签: javascript arrays angularjs object

我的数组是这样的:

$scope.states = [{                  
    "AB" : "Abia",
    "AJ" : "Abuja",                
    "AN" : "Anambra"}];

这是HTML:

<select ng-options="state for state in states">
    <option value=""></option>
</select>

如何正确传递它?

2 个答案:

答案 0 :(得分:3)

您的states是一个包含单个元素的数组 - 一个状态为键/值对的对象。您仍然可以使用ng-options的对象 - 不确定为什么需要数组 - 只要您使用"... in states[0]"引用源对象。

ng-options还需要ng-model

<select ng-model="selectedState"
        ng-options="key as state for (key, state) in states[0]">
</select>

以上将selectedState设置为key(即缩写)。您也可以将其设置为state

当然,如果您不需要states成为单个元素的数组并将其设置为元素本身,那么您可以将其称为"...(key, state) in states"而不是{{ 1}}。

答案 1 :(得分:1)

<强> JS:

$scope.states = {
        "AB" : "Abia",
        "AJ" : "Abuja",
        "AN" : "Anambra"};

<强> HTML:

<select ng-options="k as v for (k,v) in states"></select>