【发布时间】:2015-11-13 05:31:57
【问题描述】:
据我所知,当我们将变量附加到范围时,会对其应用手表,并且每个摘要周期都会对其进行检查。一个好的经验法则是,我们不应该在给定时间观察超过 2000 个变量。
我的问题是如何从范围中删除已经存在的变量。例如$scope.var1=1 说我必须创建它以供一次性使用。我是否可以从作用域中“删除”它,或者变量会在作用域的生命周期内被监视?
编辑:
从下面的 cmets 中,我了解到您应该手动移除手表,否则它们会在范围被破坏时被破坏。但是,我仍然不清楚您将如何删除由 ngModel 等指令设置的变量的监视?
【问题讨论】:
-
@Roman C 如果我错了,请纠正我,所以问题中建议的解决方案是我们删除对给定变量的引用,本质上让垃圾收集器完成工作?我也考虑过,但我认为他们可能是一种更“有角度”的方式来做到这一点
-
仅仅在作用域上创建一个值并不会在其上创建一个监视......另外,如果有一个监视,简单地删除作用域上的变量不会清理监视。如果担心手表太多,请在适用的情况下考虑一次性绑定(Angular > 1.3)。
标签: javascript angularjs