我有一個NG重複(玉):角度多重過濾器,第二個過濾器是空的?
.col-lg-4.col-md-4.col-sm-6.col-xs-12.product.product-grid(ng-repeat='item in collection | product_sex:filter_sex | product_stock:stockKind')
在我app.js我有兩個過濾器:
.filter('product_sex', function(){
return function(input, sex){
if(input == undefined){
input = [];
}
var output = [];
if(sex == 'undefined' || sex =='all'){
output = input;
}
for(var i =0; i < input.length; i++){
var item = input[i];
if (item.product.sex == sex){
output.push(item);
}
}
return output;
}
})
.filter('product_stock', function(){
return function(input, stockKind){
if(input == 'undefined'){
input = [];
}
var output = [];
if (stockKind == 'undefined' || stockKind == 'all'){
output = input;
}
for(var i=0; i< input.length; i++){
var item = input[i];
if(item.stock < 0 && item.status != 'Niet leverbaar' && stockKind == 'online'){
output.push(item);
}else if(item.stock > 0 && item.status != 'Niet leverbaar' && stockKind =='fysiek'){
output.push(item);
}
}
}
})
我想這兩個過濾器適用於我的NG-重複。第一個過濾器工作正常,但是當我添加第二個過濾器時(如示例中),它將不會返回任何內容。對於product_stock filter
中的for循環,角度錯誤日誌說TypeError: Cannot read property 'length' of undefined
。我看不出我做錯了什麼,所以我想知道你能否再次幫助我?
在我的控制器中,我使用'all'填充$scope.stockKind
和$scope.filter_sex
。後來我使人們有可能在點擊鏈接時,像改變該值ng-click='stockKind="online"'
調試你的代碼,並檢查你的'product_stock'過濾器中'input'的內容 – Weedoze