我对模板中的一次性绑定有一个非常奇怪的问题。 在定义中,如果我想使用它,我需要用::。
开始一个表达式{{ ::expression }}
通常它应该有效,但对我来说停止了工作。如果我在::之前删除空格并执行以下操作:
{{:: expression }}
有效。不知道为什么。为了检查创建了多少观察者,我使用AngularJS Batarang for Chrome和自己的JS脚本来计算观察者。两者的作用相同。 我认为这两种工具都能正常工作,因为我看到当观察者数量很大时,应用程序的运行速度非常慢。
有没有人有类似的东西?谢谢!
答案 0 :(得分:0)
我刚做了一个繁重的调试会议,事实证明它实际上是Batarang打破了一次性绑定。
Batarang使用Angular Hint挂钩角度生命周期,以了解正在发生的事情。 那里有一个关于一次性绑定的公开问题: https://github.com/angular/angular-hint/issues/109
这个问题已经很老了(虽然仍然是开放的)......看起来他们added in code试图解决问题,但它不够健壮。
这就是为什么当您执行{{::
而不是{{ ::
好消息您不必担心自己的应用,这些一次性绑定正在制作中(除非您的用户也启用了Batarang)。
坏消息你现在不能依靠Batarang对观察者说实话,并警惕它可能导致其他错误/问题,因为它已经取代角度代码。
顺便说一下,codepen运行正常,因为它在iframe中运行,所以batarang无法访问并打破它。