Попытка использовать фильтр по директиве с изолята сферы:
<div tags="p.tags | refTags"></div>
вызывает бесконечный цикл в $ переваривать цикл:
Эта ошибка возникает, когда модель приложения становится нестабильной, и каждый цикл $ digest запускает изменение состояния и последующий цикл $ digest. Угловая обнаруживает эту ситуацию и предотвращает бесконечный цикл, чтобы браузер не реагировал.
.directive 'tags', ->
restrict: 'A'
scope:
tags: '='
templateUrl: 'partials/tags.html'
.filter 'refTags', ->
(tags) ->
['a filtered', 'array of values']
обертоны/tags.html
<ul>
<li ng-repeat="tag in tags">{{tag.tag}}</li>
</ul>
p.tags в контроллере
p.tags = ['HTML5', 'CSS', 'JavaScript', 'Angular JS', 'Backbone JS', 'Node JS', 'SASS + Compass', 'Oragami', 'Running', 'Cat Food', '#catfood']
Является ли такое поведение нормально?
- Может ли фильтр не использоваться для значения, передаваемого в область выделения директивы?
- Есть ли обходной путь для этого? Мне нужно отфильтровать значения массивов
- Есть ли другое решение с другим дизайном?
Это не полный фильтр refTags? Можете ли вы поделиться этим кодом? –
Да, это все, что есть. Это coffeescript, если это вызывает какую-либо путаницу. – TaylorMac
Итак, ваш фильтр фактически возвращает массив с двумя элементами «отфильтрованный» и «массив значений» ... как он фактически фильтрует эти значения? –