为了账号安全,请及时绑定邮箱和手机立即绑定

AngularJS-如何使用ng-repeat构建自定义过滤器以有条件地返回项目

AngularJS-如何使用ng-repeat构建自定义过滤器以有条件地返回项目

芜湖不芜 2019-10-10 16:08:39
我有一个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;

      });

    }

});


查看完整回答
反对 回复 2019-10-10
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

对于CoffeeScript爱好者:


userApp.filter 'matchAccessLevel', ->

  (items, userAccessLevel) ->

    item for item in items when userAccessLevel >= item.minAccess


查看完整回答
反对 回复 2019-10-10
  • 3 回答
  • 0 关注
  • 745 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信