如何限制angularjs ng-repeat数组对象

时间:2018-04-13 07:17:43

标签: javascript angularjs angular-material

我必须限制Angularjs数组对象。如果它是数组我正在使用limitTo过滤器,它正在运行

但在这种情况下,我必须限制我的对象数组。

我需要先限制对象

这是我的HTML代码:

<md-select required name="filterType"
               ng-model="filter.type" aria-label="{{ 'alias.filter-type' | translate }}">
    <md-option ng-value="type.value" ng-repeat="type in aliasFilterTypes |limitTo:3" >

        {{type.name | translate}}
    </md-option>
</md-select>

我的数组对象是:

{
    "singleEntity": {
        "value":"singleEntity",
        "name":"alias.filter-type-single-entity"
    },
    "entityList":{
         "value":"entityList",
         "name":"alias.filter-type-entity-list"
    },
    "entityName":{
        "value":"entityName",
        "name":"alias.filter-type-entity-name"
    },
    "stateEntity":{
        "value":"stateEntity",
        "name":"alias.filter-type-state-entity"
    },
    "assetType":{
        "value":"assetType",
        "name":"alias.filter-type-asset-type"
    },
    "deviceType":{
        "value":"deviceType",
        "name":"alias.filter-type-device-type"
    },
    "relationsQuery":{
        "value":"relationsQuery",
        "name":"alias.filter-type-relations-query"
    },
    "assetSearchQuery":{
        "value":"assetSearchQuery",
        "name":"alias.filter-type-asset-search-query"
    },
    "deviceSearchQuery":{
        "value":"deviceSearchQuery",
        "name":"alias.filter-type-device-search-query"
    }
}

2 个答案:

答案 0 :(得分:3)

您可以将$indexng-if

一起使用
<md-select required name="filterType" ng-model="filter.type" aria-label="{{ 'alias.filter-type' | translate }}">
    <md-option ng-value="type.value" ng-repeat="type in aliasFilterTypes" ng-if="$index < 2">

        {{type.name | translate}}
    </md-option>
</md-select>

答案 1 :(得分:1)

limitTo过滤器检查密钥的值,因此它不适用于您的案例。

您应该使用$index并将ng-if条件添加到ng-repeat ed元素中。尝试;

ng-repeat="type in aliasFilterTypes" ng-if="$index < 3"
相关问题