在此Plunker示例中,以下过滤器用于使选择框选项仅可选择一次 http://plnkr.co/edit/BBqnTlxobUpiYxfhyJuj?p=preview
.filter('arrayDiff', function() {
return function(array, diff) {
console.log(diff);
var i, item,
newArray = [],
exception = Array.prototype.slice.call(arguments, 2);
for(i = 0; i < array.length; i++) {
item = array[i];
if(diff.indexOf(item) < 0 || exception.indexOf(item) >= 0) {
newArray.push(item);
}
}
return newArray;
};
});
我真的需要这样的过滤器,但问题是我的diff
变量不是数组而是数字(选定的值)。 (它是1,2,3或未定义):
在此代码diff
中,1,2,[3]或[]。
如何重写这样的过滤器以使用数字而不是数组。
这就是我使用过滤器的方式:http://plnkr.co/edit/L9hBa5LapAV76wHrwRnX?p=preview
答案 0 :(得分:0)
这样的事情:
.filter('arrayDiff', function() {
return function(array, diff) {
console.log(diff);
var i, item,
newArray = [],
exception = Array.prototype.slice.call(arguments, 2);
for(i = 0; i < array.length; i++) {
item = array[i];
if(diff == item || exception.indexOf(item) >= 0) {
newArray.push(item);
}
}
return newArray;
};
});