Я хотел бы сделать угловую директиву, в которой я использую фильтр для данных, которые передаются в качестве аргумента.
Что-то вроде этого:
<div class="my-module" data="a in array | orFilter:filter"></div>
Где «данные» — это атрибут директивы «мой модуль». Я просмотрел исходный код ngRepeat, но они анализируют аргумент ng-repeat, а затем оценивают его. Я не могу использовать ng-repeat, потому что я создаю новый экземпляр объекта (маркер для карты) из параметра данных.
Неужели так тяжело? Возможно ли это сделать в пользовательской директиве и как?
Небольшой пример того, что я хочу: http://jsfiddle.net/PjRAr/1/
ИЗМЕНИТЬ
Я пытаюсь расширить эту обертку карты для отображения отфильтрованных маркеров.
Мое потенциальное решение - копировать все маркеры и видимые маркеры. Добавьте $watch в фильтр и, когда фильтр будет изменен, вызовите $scope.markers = $scope.$eval("allMarkers | orFilter:filter");
.
С этим решением нам нужно хранить две копии всех маркеров (~ 500).