javascript - Angular JS 过滤器 2 值?

标签 javascript angularjs angular-filters

我有一个过滤器:

angular.module('pb.ds.foundation').filter('notAvailable', function () {
  return function (items, name) {
    var arrayToReturn = [];

    for (var i = 0; i < items.length; i++) {
      if (items[i].code !== name) {
        arrayToReturn.push(items[i]);
      }
    }

    return arrayToReturn;
  };
});

我写的内容是为了从 ng-repeat 中过滤掉给定的项目:

ng-repeat="nio in icon.nucleoIcons | notAvailable: 'arrows-2_time'"

但是现在,我想从中继器中过滤第二个图标(字符串)。我是否需要使用新值再次通过管道传输相同的过滤器,或者是否有办法传递过滤器 1 个或多个值?

最佳答案

有几种方法可以实现这一点。您可以像以前一样将字符串传递给过滤器,但也可以传递数组或作用域变量。

这是一个plnk已更新过滤器以接受字符串、数组或范围变量。

angular.module('app', [])
.filter('notAvailable', function () {
  return function (items, name) {
    var arrayToReturn = [];

    if (Array.isArray(name)) {
      for (var i = 0; i < items.length; i++) {
        if (name.indexOf(items[i].code) === -1) {
          arrayToReturn.push(items[i]);
        }
      }
    } else {
      for (var i = 0; i < items.length; i++) {
        if (items[i].code !== name) {
          arrayToReturn.push(items[i]);
        }
      }
    }

    return arrayToReturn;
  };
})

关于javascript - Angular JS 过滤器 2 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40773294/

相关文章:

javascript - 为什么 setTimeout(.., 0) 不立即执行?

javascript - 分配函数范围结束后,纯 javascript onclick 变为未定义

javascript - javascript中的angular ng-repeat预过滤器

javascript - 点击功能不适用于第二次点击

javascript - Emberjs-data 限制集合

javascript - 收到新数据时重新加载 Angular 表

javascript - 单击 checkAll 复选框时,将其对象推送到另一个数组对象中并从现有数组中删除

AngularJS : Factory Service Controller $http. 获取

angularjs - 尝试使用 AngularJS 显示两个日期之间的结果

javascript - 在angularjs中突出显示跨度的文本