Мне нужно использовать директиву sublist
в нескольких местах страницы, и она должна содержать иногда полный список fields
, но иногда фильтруется. Вот мой наивный подход:Angular.js передать фильтр в директиву двунаправленный ('=') атрибут
HTML:
<div ng-controller="MainCtrl">
<sublist fields="fields" /> <!-- This one is OK -->
<sublist fields="fields | filter: 'Rumba'" /> <!-- This one raises error -->
</div>
Javascript:
angular.module('myApp', [])
.directive('sublist', function() {
return {
restrict: 'E',
scope: { fields: '=' },
template: '<div ng-repeat="f in fields">{{f}}</div>'
};
})
.controller('MainCtrl', function($scope) {
$scope.fields = ['Samba', 'Rumba', 'Cha cha cha'];
});
При попытке использовать фильтр я получаю эту ошибку:
Error: 10 $digest() iterations reached. Aborting!
Есть ли решение этой проблемы?
+1 для объяснения и ссылки. –
Что делать, если вам может понадобиться несколько фильтров, сортировка и т. Д.? Есть ли общее решение для передачи какого-либо общего фильтрованного/отсортированного списка в директиву? –
@EugeneOsovetsky: В этот момент, вероятно, легче/необходимо сделать тяжелый подъем в функции директивной ссылки/контроллера, введя там '$ filter'. (т. е. этот контекст Q & A - это представление, а не часть контроллера парадигмы MVC. Контроллер позволяет гораздо сложнее.) См. [stackoverflow.com/a/14302334/2185093](http://stackoverflow.com/a/14302334/2185093) для получения дополнительной информации – sh0ber