我有一個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 關注
- 780 瀏覽
添加回答
舉報
0/150
提交
取消