Во-первых - позвольте мне извиниться за то, что он является полным угловатым новичком.Пользовательский фильтр AngularJS в шаблоне
В настоящее время я работаю над новым веб-приложение и пытается следовать стиль руководства (https://github.com/johnpapa/angular-styleguide)
У меня все работало, но в данный момент должен объявить свою функцию фильтра в каждом из моих контроллеров ,
Я бы хотел иметь это дублирование и иметь одну копию в своем собственном файле, но если я сделаю это и попытаюсь использовать его в своих шаблонах, он не будет распознан.
Моя функция фильтра:
(function() {
'use strict';
angular
.module('lfms')
.filter('includeDeleted', includeDeleted);
includeDeleted.$inject = ['property', 'includeDeleted'];
function includeDeleted(property, includeDeleted) {
if (includeDeleted) {
return function (item) {
return true;
}
} else {
return function (item) {
return !(item[property]);
}
}
}
})();
, и я пытаюсь использовать его следующим образом:
<tr ng-repeat="crew_member_detail in vm.crew_members | filter: vm.includeDeleted('deletedAt', vm.showDeleted) | filter:vm.search | orderBy: predicate:reverse">
Если бы я включил эту функцию в моем контроллере (следующим образом) все работает отлично:
(function() {
'use strict';
angular
.module('lfms')
.controller('CrewController', CrewController);
CrewController.$inject = ['CrewData', '$filter'];
function CrewController(CrewData, $filter) {
var vm = this;
vm.crew_members = CrewData("");
vm.showDeleted = false;
vm.includeDeleted = includeDeleted;
function includeDeleted(property, includeDeleted) {
if (includeDeleted) {
return function (item) {
return true;
}
} else {
return function (item) {
return !(item[property]);
}
}
}
}
})();
Я попытался удалить «vm.». перед фильтром, но все равно ничего. Я предполагаю, что это проблема, но, похоже, не может найти ничего, чтобы направлять меня к решению.
Я ценю любую помощь, которую вы можете дать!
Спасибо Эвальд. Есть ли какая-либо польза/недостаток для этого посредством службы вместо фильтра? Большое спасибо. – Miles