Angular JS 过滤器 2 值?
Angular JS filter 2 values?
我有一个过滤器:
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 icons.nucleoIcons | notAvailable: 'arrows-2_time'"
但是,现在我想从我的转发器中过滤一个 second 图标(字符串)。我是否需要使用新值再次通过管道传递同一个过滤器,或者是否有办法通过过滤器 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;
};
})
我有一个过滤器:
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 icons.nucleoIcons | notAvailable: 'arrows-2_time'"
但是,现在我想从我的转发器中过滤一个 second 图标(字符串)。我是否需要使用新值再次通过管道传递同一个过滤器,或者是否有办法通过过滤器 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;
};
})