javascript - ng-repeat 内的多参数 Angular 过滤器

标签 javascript angularjs angularjs-ng-repeat angular-filters

我正在尝试基于接收两个参数的自定义过滤器在 ng-repeat 内创建一个过滤器。同时,这些参数之一是重复对象的一个​​属性。

所以在我的 ng-repeat 代码中我有:

<tr ng-repeat="player in myTeam | bitwiseAnd:{firstNumber: player.Flag, secondNumber: type}">

但是它不起作用。如果我调试它,过滤器会在第一个参数中接收未定义的参数。

我已阅读文档:https://docs.angularjs.org/guide/filter

我还阅读了 SO 中的多个相关问题

没有成功。

我创建了一个 plunker,在其中我们可以看到当我将其用作表达式时过滤器如何正常工作,因此问题可能是在 ng-repeat 语句内发送值。

这是一个骗子: http://plnkr.co/edit/IGvDBq?p=preview

感谢您的宝贵时间

最佳答案

我的团队 | bitwiseAndbitwise 过滤器应用于整个 team 数组,而不是玩家。所以效果就跟写的一样

<tr ng-repeat="player in true">

如果过滤器返回true。您想要的是一个返回数组的过滤器。您可以创建自己的过滤器或使用过滤器filter。后一个与你的结合起来很棘手,但这是可能的。首先,您在 Controller 中定义一个谓词函数

$scope.bitwiseAnd = function(type) {
  return function(player) {
    return $filter('bitwiseAnd')(player.Flag, type);
  }
}

该函数会应用您的 bitwiseAnd 过滤器,并且它本身也会应用于每个玩家。然后您使用具有该功能的过滤器过滤器:

<tr ng-repeat="player in myTeam | filter:bitwiseAnd(type)>

Working Plunker

关于javascript - ng-repeat 内的多参数 Angular 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25552688/

相关文章:

javascript - 使用 angularjs 设置默认的 http 主机

javascript - 使用 ngAnimate 向下/向上滑动?

javascript - 通过名称获取 var 的值

javascript - 条件中的额外括号是否有意义?

javascript - AngularJS 中带有 cellTemplate 的树形网格组件

javascript - Angular 使用 ng-repeat 将迭代对象保留在选项中

javascript - 在 ng-repeat 期间添加 Bootstrap 行

html - 如何在 md-tooltip 中编译/添加 HTML

javascript - 为什么当 Dev Console 启动时我在 Chrome 中获得更好的性能?

javascript - Bootstrap - 响应能力