尝试在具有隔离范围的指令上使用过滤器:
在$ digest循环中导致无限循环:
当应用程序的模型变得不稳定并且每个$摘要周期触发状态更改和随后的$摘要周期时,会发生此错误.Angular检测到这种情况并防止无限循环导致浏览器无响应.
.directive 'tags', -> restrict: 'A' scope: tags: '=' templateUrl: 'partials/tags.html' .filter 'refTags', -> (tags) -> ['a filtered', 'array of values']
谐音/ tags.html
p.tags在控制器中
p.tags = ['HTML5', 'CSS', 'JavaScript', 'Angular JS', 'Backbone JS', 'Node JS', 'SASS + Compass', 'Oragami', 'Running', 'Cat Food', '#catfood']
这种行为是否正常?
过滤器不能用于传递给指令的隔离范围的值吗?
这有解决方法吗?我需要过滤数组值
是否有另一种设计不同的解决方案?
Maxim Shoust.. 5
我不认为这是一个指令问题,而是一个过滤问题.过滤器的目标是将数组作为输入并基于某些规则和条件返回另一个数组,其中数组项具有与输入相同的结构.
在$ digest循环中导致无限循环的原因是在过滤器中,每个摘要循环过滤器返回一个导致额外循环的不同对象.
我建议你从返回相同的数组开始,即input = output
.检查一切是否按预期工作.之后添加相关条件.
我不认为这是一个指令问题,而是一个过滤问题.过滤器的目标是将数组作为输入并基于某些规则和条件返回另一个数组,其中数组项具有与输入相同的结构.
在$ digest循环中导致无限循环的原因是在过滤器中,每个摘要循环过滤器返回一个导致额外循环的不同对象.
我建议你从返回相同的数组开始,即input = output
.检查一切是否按预期工作.之后添加相关条件.