尝试对具有隔离范围的指令使用过滤器:
<div tags="p.tags | refTags"></div>
在$ digest循环中导致无限循环:
当应用程序的模型变得不稳定并且每个$ digest周期触发状态更改和随后的$ digest周期时,就会发生此错误。Angular会检测到这种情况,并防止无限循环导致浏览器无响应。
.directive 'tags', ->
restrict: 'A'
scope:
tags: '='
templateUrl: 'partials/tags.html'
.filter 'refTags', ->
(tags) ->
['a filtered', 'array of values']
partials / 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']
这是正常现象吗?
我认为这不是指令性问题,而是过滤器问题。过滤器的目标是获取一个数组作为输入,并根据一些规则和条件返回另一个数组,其中数组项的结构与输入相同。
在$ digest循环中导致无限循环的原因是,在过滤器中,每个摘要循环过滤器返回一个不同的对象,从而导致一个附加循环。
我建议您首先返回相同的数组,即input = output
。检查是否所有工作都按预期方式进行。之后添加相关条件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句