0
我有一個過濾器,我需要使用兩次(兩頁/控制器),過濾對象類別。我能得到這個在每個控制器中使用這個工作:AngularJS過濾器最佳實踐
$scope.$on('category', function (event, arg) {
$scope.catSort = arg;
});
$scope.filterCat = function (item) {
return !$scope.catSort ?
item : (item.category == $scope.catSort);
};
的HTML我正在篩選上:
<li dnd-draggable="item" ng-repeat="item in items| filter: filterCat">
</li>
我設置$ scope.catSort這是一個篩選依據是什麼按鈕,用戶可以點擊:
<button class="btn btn-default" ng-click="$emit('category', 'all')">Show All</button>
<button class="btn btn-default" ng-click="$emit('category', 'Common')">Common</button>
的問題是,我還有一個HTML頁面,我需要過濾類別的不同子集。我不想複製和粘貼$ scope.filterCat函數來再次過濾,而是想創建一個單獨的過濾器來注入每個控制器(這是最佳實踐嗎?)。
所以我已經開始這是一個單獨的過濾器:
angular.module("category-filter", [])
.filter('filterCat', function() {
return function (category, item) {
return !category ?
product : (item.category == $scope.catSort);
}
});
您可以看見我試圖讓該類別的選擇也是如此。我如何進入範圍並獲得類別?我應該使用服務,並在其中一個按鈕點擊設置類別過濾?
我還在學習的過濾器和什麼希望確保它的可重複使用的,並遵循最佳實踐