Я хотел бы использовать свой собственный фильтр с директивой ngRepeat. Вот что у меня естьAngularJS - настраиваемый фильтр с директивой ngRepeat
HTML:
<div ng-app="menuApp">
<ul ng-controller="MenuCtrl">
<li ng-repeat="item in menuItems | rootCategories">
{{item.Name}}
</li>
</ul>
</div>
JS:
angular.module('menuApp', [])
.filter('rootCategories', function() {
return function(item) {
return item.Parent == 0;
};
});
function MenuCtrl($scope) {
$scope.menuItems = [{ "Id": 1, "Name": "Sweep", "Parent": 0 }];
/*
$scope.rootCategories = function(item) {
return item.Parent == 0;
};
*/
};
Я не хочу использовать закомментирована способ фильтровать элементы, потому что реальный фильтр будет сложнее, чем в приведенном примере. По некоторым причинам входной параметр «элемент» не определен, поэтому я ничего не вижу. Не могли бы вы рассказать мне, что не так? Спасибо.
Я нашел следующий комментарий: «ИСПРАВЛЕНИЕ: пользовательский фильтр внутри нг-повтор проходит весь ассоциативный массив в качестве входных данных, а не ключ/значение каждого объекта или {{keyword.values}}, как я ранее неправильно понял. " Но не может изобрести умный способ применить его. – Antipod
Я нашел следующую ссылку, которая помогла мне решить мою проблему: http://stackoverflow.com/questions/11753321/passing-arguments-to-angularjs-filters – Antipod