Angular JS过滤器2值?

时间:2016-11-23 20:07:10

标签: javascript angularjs angular-filters

我有一个过滤器:

from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QFont
from PyQt5.QtWebEngineWidgets import QWebEngineView


class WebView(QWebEngineView):


    def __init__(self):
        super(WebView, self).__init__()
        self.init_ui()


    def init_ui(self):
        self.load(QUrl("http://www.google.com/"))
        self.setFont(QFont("Arial Black"))

我写的是从ng-repeat中过滤掉一个给定的项目:

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; }; });

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

1 个答案:

答案 0 :(得分: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;
  };
})