使用过滤器时达到10 $ digest()次迭代

Geo*_*vet 1 angularjs angularjs-directive

我尝试使用过滤器| filter: {pro: value},但我有一个非常奇怪的错误:错误:[$ rootScope:infdig] 10 $ digest()迭代达成.中止!...

在我的控制器中,我只是$scope.slots = […].

我的观点非常简单:<div time-slots="slots | filter: {day:1}"></div>.

我的指示是公正的 templateUrl: 'time-slot.html', restrict: 'A', scope: { timeSlots: '=' }.

我完全迷失了这个错误...我不明白我的代码有什么问题.这里有一个掠夺者

我做错什么了吗 ?

hon*_*n2a 7

您正在$digest使用以下组合创建无限序列的s:

  • 带有=绑定的孤立范围,
  • 带有过滤器的表达式传递给该绑定.

请记住,=绑定有两种方式,过滤器的应用程序会创建一个新的集合.因此,发生以下情况:

  1. 外部作用域集合A被过滤,创建集合B,并传递给指令.通过双向=绑定,它被设置回外部范围,替换A.
  2. 外部作用域集合B被过滤,创建集合C,并传递给指令....
  3. ...

当AngularJS发现$digests是圆形的并且还需要更多时,它会突然出现上述错误.