如何在自定义过滤器中添加多个参数?

时间:2016-01-13 09:57:35

标签: javascript angularjs

以下过滤条件使ng-repeat仅显示pano isOutRoom true的{​​{1}}:

<tr ng-if="building.pano.length" ng-repeat="pano in panos | filter: filterByRoom">

$scope.filterByRoom = function(pano, room) {
  return pano.isOutRoom === true
}

我还希望有另一个仅在pano isVirtualRoom设置为true的情况下显示重复次数。

如何向过滤器添加第二个参数,以便我可以在isOutRoomisVirtualRoom之间进行选择?

我试过了:

<tr ng-if="building.pano.length" ng-repeat="pano in panos | filter: filterByRoom: pano.isOutRoom)"

$scope.filterByRoom = function(pano, room) {
  return pano.room === true

但现在ng-repeat中没有显示任何内容。

2 个答案:

答案 0 :(得分:1)

您可以使用:

分隔参数

filter: filterByRoom : secondArg : thirdArg

修改:看起来这篇文章更详细地回答了问题:https://stackoverflow.com/a/16227326/841804

答案 1 :(得分:1)

过滤器可能有参数。其语法是

{{ expression | filter:argument1:argument2:... }}

E.g。标记{{1234 | number:2}}使用数字过滤器将数字1234格式化为2个小数点。结果值为1,234.00。

docs:https://docs.angularjs.org/guide/filter