如何在角度ui-select-choices中重复对象属性?

时间:2016-08-19 06:31:59

标签: angularjs object angular-ui-select

我有一个对象

{
    key1: value1,
    key2: value2
}

如何在ui-select-choices中重复此操作?我尝试了一些事情,但没有任何工作

<ui-select ng-model="selectedChoice" theme="select2">
    <ui-select-match placeholder="{{'select_product' | translate}}" allow-clear="true">
        <span ng-bind="$select.selected"></span>
    </ui-select-match>
    <ui-select-choices repeat="key as (key, value) in (productList | filter: $select.search)">
        <span>{{::key}}</span>
    </ui-select-choices>
</ui-select>

1 个答案:

答案 0 :(得分:1)

这应该有效:

<ui-select-choices repeat="product.key as (key, product) in productList | filter: {'value':$select.search}">
    <span ng-bind-html="product.value"></span>
</ui-select-choices>

Angular UI Select以这种方式迭代对象:在迭代每对(key, value)而不是直接访问值时,一个对象(在我上面的代码中命名为product创建包含名为keyvalue的两个属性,其中key是初始对象的实际键,value是键的值。该对象应该用于访问实际值。

例如,对于以下初始数据对象

{
    key1: {
        id: 1,
        name: 'John'
    },
    key2: {
        id: 2,
        name: 'Alex'
    }
}

在第一次迭代时,将创建这样的对象:

{
    key: 'key1',
    value: {
        id: 1,
        name: 'John'
    }
}

对于您的数据对象,将在第一次迭代(product)上创建以下对象:

{
    key: 'key1',
    value: 'value1'
}