У меня есть фильтр, который мне нужно использовать два раза (две страницы/контроллеры), фильтруя по категории объектов. Я могу получить эту работу, используя это в каждом контроллере:AngularJS Filter Best Practice
$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);
}
});
Вы можете видеть, я пытаюсь получить эту опцию категории, а также. Как я могу охватить сферу охвата и получить категорию? Должен ли я использовать услугу, и на одном из щелчков кнопки задается категория для фильтрации?
Я все еще учусь фильтры и что хотите, чтобы убедиться, его многоразовые и следующие лучшие практики