我有一个ng-repeat打印列表项。我想编写一个自定义过滤器,以便仅在条件为true时才打印列表项。我似乎结构有误,因为似乎变量没有传递给过滤器。index.php<div ng-show="userDetails.username" class="nav"> <p>Menu</p> <li ng-repeat="menuItem in menu | matchAccessLevel:$rootScope.userDetails.accessLevel:menuItem.minAccess | orderBy:'position' "> <a ng-href="/angular-app/app/{{menuItem.id}}">{{menuItem.name}}</a> </li></div>app.jsuserApp.filter('matchAccessLevel', function() { return function( item, userAccessLevel, minAccessLevel ) { if( userAccessLevel >= minAccessLevel ) { return item; } }});
3 回答
慕田峪7331174
TA贡献1828条经验 获得超13个赞
您可以使用Array.filter以获得更简洁的解决方案:
app.filter('matchAccessLevel', function() {
return function( items, userAccessLevel ) {
return items.filter(function(element){
return userAccessLevel >= element.minAccess;
});
}
});
30秒到达战场
TA贡献1828条经验 获得超6个赞
对于CoffeeScript爱好者:
userApp.filter 'matchAccessLevel', ->
(items, userAccessLevel) ->
item for item in items when userAccessLevel >= item.minAccess
- 3 回答
- 0 关注
- 747 浏览
添加回答
举报
0/150
提交
取消