如何使用ng-repeat根据项目值的起始字母显示

时间:2016-09-16 05:43:00

标签: angularjs

我有一个项目名称范围从A-Z的数组。 对于字母表中的每个字母,我想要做的是ng-repeat

对于Array中的A字母:

<div ng-repeat="item in items | orderBy: 'item_name'">
   {{item.item_name}}
</div>

对于Array中的B字母:

<div ng-repeat="item in items | orderBy: 'item_name'">
   {{item.item_name}}
</div>

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

您可以使用custom filter

实现此目的
<div ng-repeat="item in items | filter:criteriaMatch('z')"> 
   {{item.name}}
</div>

 <div ng-repeat="item in items | filter:criteriaMatch('A')"> 
   {{item.name}}
</div>

filter功能如下

$scope.criteriaMatch = function(x) {
    return function( item ) {
        return item.name.startsWith(x);
    };
};

这里是 Working fiddle

希望它可以帮助你:)

答案 1 :(得分:1)

您可以使用angular.filter module

使用groupBy过滤器
<div ng-repeat="item in items | groupBy: 'item_name.substr(0,1)'">
   {{item.item_name}}
</div>