2016-03-04 113 views
1

这是我的JSON数据:Angular select populate dropdown?

[{ 
    "table":"mCity", 
    "drpdownItems":[ 
    { 
     "Display":"ab", 
     "Value":1 
    }, 
    { 
     "Display":"a", 
     "Value":10 
    }, 
    { 
     "Display":"Delhi", 
     "Value":7 
    }, 
    { 
     "Display":"Devgad", 
     "Value":4 
    }, 
    { 
     "Display":"Kalyan", 
     "Value":5 
    }, 
    { 
     "Display":"Mumbai", 
     "Value":2 
    }, 
    { 
     "Display":"Nashik", 
     "Value":9 
    }, 
    { 
     "Display":"New Mumbais", 
     "Value":6 
    }, 
    { 
     "Display":"Panji ", 
     "Value":8 
    }, 
    { 
     "Display":"Pune", 
     "Value":3 
    } 
    ] 
}] 

我想下面的输出:

<select> 
    <option value="1">ab</option> 
    <option value="10">a</option> 
    <option value="7">Delhi</option> 
</select> 

我尝试以下操作:

ng-options="City.Display as City.Value for drpdownItems in CmbsData.table['mCity']" 
+0

试试这个'NG选项=“City.Display作为City.Value为drpdownItems在CmbsData.drpdownItems”' –

回答

0
ng-options="City.Display as City.Value for drpdownItems in CmbsData[0].drpdownItems" 

CMBS是一个数组,并drpdownItems是该对象属性是该数组的第一个元素

根据评论编辑:概括形式 ng-options =“City.Display as City.Value for drpdownItems in(CmbsData |过滤器:{表: 'mCity'})drpdownItems”

+0

我想过滤哪些表是'mCity'。不想用索引进行硬编码。 有机会我会得到多个对象。 –

+0

回答更新为更广泛的fom –

+0

谢谢你谢谢:) –

0

更新基于以下评论:

<select 
    ng-options="City.Value as City.Display for City in (CmbsData | filter:{table:'mCity'}:true|limitTo:1)[0].drpdownItems" 
    ng-model="selectedCity"> 
</select> 

为了使一种严格匹配,请在您的filter. It is better to use limitTo使用true:1 because there may be multiple matches. 。过滤and limitTo always result in an array. Since we are limiting by 1, we can use [0]`指数来得到我们想要的城市

原来的答复:

您需要使用这样的

<select name="" id="" ng-options="City.Value as City.Display for City in CmbsData[0].drpdownItems" ng-model="selectedCity"></select> 

ng-options语法_select_ (as _label_)? for (_key_,)?_value_ in _collection_

+0

我想筛选哪里表是'mCity'。不想用索引 –

+0

进行硬编码我已经更新了答案。 –