0
有關自定義過濾器的非常簡單的問題。我沒有得到的是如何將產品對象作爲items
傳遞給過濾器或過濾器如何訪問它們?Angularjs過濾器基礎知識
我想它與<li ng-repeat="product in products | priceFilter:prices>
有關,但明確的解釋將有助於谷歌和閱讀angularjs文檔到目前爲止沒有什麼幫助。
JS文件
var myAppModule = angular.module('myApp', []);
myAppModule.filter('priceFilter', function() {
return function(items, prices) {
console.log(items);
var filtered = []
// Are all the brands active?
var allInActive = true;
for(var price in prices){
if(prices[price].active){
allInActive = false;
break;
}
}
if(allInActive){
return items;
}
angular.forEach(items, function(item) {
if(item.price_desc != null){
if(prices[item.price_desc].active){
filtered.push(item);
}
}
});
return filtered;
};
});
function ProductsController($scope, $filter) {
$scope.products = productsData;
}
HTML
<li ng-repeat="product in products | priceFilter:prices" ></li>
所以源陣列'products'保持完整,並且不會受到在products'調用'產品? – Robbo 2015-02-08 20:19:44
是的,但是,您可以在右側添加另一個管道和另一個過濾器。然後將從左到右應用每個過濾器。 – 2015-02-08 20:45:06