如何从angular.js中的范围"删除"变量

Kir*_*ndi 10 javascript angularjs

根据我的知识,当我们将一个变量附加到范围时,会对其应用监视并在每个摘要循环中检查它.一个好的经验法则是,我们不应该在给定的时间内观察超过2000个变量.

我的问题是如何从范围中删除已存在的变量.例如,$scope.var1=1我说我必须创建它一次性使用.我是否有可能从范围中"删除"它或者是否会在范围的生命周期内观察变量?

编辑:

从下面的评论中我了解到你应该手动移除手表,否则当范围被破坏时它们会被销毁.但是我仍然不清楚如何删除由ngModel等指令设置的变量的监视?

agh*_*ini 34

您只需使用delete关键字:

delete $scope.var1;
Run Code Online (Sandbox Code Playgroud)

  • 否-删除值(如果已定义)将导致监视回调执行,因为该值从已定义变为已删除/未定义。可以通过调用$ scope。$ watch显式设置监视,也可以通过使用创建监视的指令(例如ngModel)隐式设置监视。 (2认同)