从ng-option访问对象

时间:2014-06-09 15:59:50

标签: javascript angularjs

很多问题都有蜜蜂询问有关访问对象的问题,但我找不到能解决问题的问题。

我有一个动态创建的对象:

{
    id: "ISO 19115:MD_Metadata:identificationInfo:extent:temporalElement:extent",
    value: "ISO   19115:MD_Metadata:identificationInfo:extent:temporalElement:extent:endPosition",
    begin: "ISO 19115:MD_Metadata:identificationInfo:extent:temporalElement:extent",
    ...
}

我想要做的是在ng-options(angularJS)中显示第二个参数的夫妇(id - ISO 19115:MD ...,值 - ISO 19115:MD ...)是通过第一个。

所以我想知道这样的事情是否可行:

 <select ng-model='selectedtype' ng-options="(item[0] + item[1]) for item in types">
        <option value="">select type</option> 
 </select>

请注意,我的对象位于$scope.types

这不起作用所以有一个像指定关键字一样的解决方案来访问name:value couple。

我知道这对于一个对象的设计是非常糟糕的,我应该尝试这样的事情:

{
 [
    {
        'name': 'id',
        'value':'ISO 19115 ...',
    },
    ....
 ]
}

但如果可能,我会很感激另一种解决方案。

2 个答案:

答案 0 :(得分:1)

ng-options支持字符串连接。所以你可以轻松使用像

这样的东西

ng-options="'id-'+item.id+', value-'+item.value for item in types"

演示: http://plnkr.co/edit/XHXKnNJOaDEAITtkI3HC?p=preview

答案 1 :(得分:1)

您可以使用以下格式访问对象键值对:

ng-options="key as key+': '+value for (key, value) in types"

另请参阅此 short demo