如何在Angular中解除$ on的绑定?

立方的

我有一个代码,它在$ init上一次使用$ scope。$,然后在一个函数中使用,因此该代码被多次执行。如果先解除绑定,再重新绑定它。我试过$ scope。$ off,但是没有这样的功能,docs.angularjs.org/api不谈$ on。我正在使用角度1.0.6。

苏尼莎

如果不取消注册该事件,则会泄漏内存,因为传递给$ on的函数将不会被清除(因为对该函数的引用仍然存在)。更重要的是,任何在其范围内引用功能的变量也将泄漏。如果在应用程序中多次创建/销毁控制器,则将导致多次调用函数。幸运的是,AngularJS提供了两种有用的方法来避免内存泄漏和不良行为:

  • $ on方法返回一个函数,可以调用该函数取消注册事件侦听器。
  • 每当在Angular中清理范围(即控制器被销毁)时,都会在该范围上触发$ destroy事件。您可以注册$ scope的$ destroy事件,然后从中调用cleanUpFunc。

请参阅说明文件

样例代码:

   angular.module("TestApp")
      .controller("TestCtrl",function($scope,$rootScope){
        var cleanUpFunc = $scope.$on('testListener', function() {
          //write your listener here
        });

       //code for cleanup
       $scope.$on('$destroy', function() {
         cleanUpFunc();
        };      
    })

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在subGrid中绑定和解除绑定事件

来自分类Dev

如何在 PyUsb 中绑定/解除绑定 USB 设备?

来自分类Dev

如何在tmux中解除对<prefix> space的绑定?

来自分类Dev

我如何在emacs中解除ctrl + c的绑定

来自分类Dev

如何在tmux中解除对<prefix> space的绑定?

来自分类Dev

如何在tmux中解除Ctrl + LeftClick的绑定?

来自分类Dev

我如何使用绑定和解除绑定?

来自分类Dev

解除绑定后无法绑定

来自分类Dev

如何在Emacs ansi-term中解除“ M-1”和“ M-2”的绑定

来自分类Dev

Clojure中的绑定与绑定

来自分类Dev

片段中的解除绑定服务

来自分类Dev

如何在Angular 2中的ngFor中设置绑定?

来自分类Dev

Raphael:如何在mouseup上解除mousemove功能的绑定?

来自分类Dev

如何在WPF中绑定

来自分类Dev

如何在函数中绑定 this?

来自分类常见问题

如何在Angular2中绑定原始HTML

来自分类Dev

如何在Angular2中绑定列表?

来自分类Dev

如何在Angular应用中绑定Graphicsmetrics jQuery插件

来自分类Dev

如何在Angular FormArray中动态绑定ngSelect下拉列表

来自分类Dev

如何在Angular 11中绑定到数组

来自分类Dev

如何在Angular2中绑定列表?

来自分类Dev

如何在 Angular 2 中的数据绑定后执行操作?

来自分类Dev

在 Angular 2 中,如何在选择输入上绑定 null?

来自分类Dev

如何在 Angular 中动态更改绑定变量?

来自分类Dev

如何在 Angular 2+ 中动态绑定 Kendo Grid

来自分类Dev

如何在 Visual Studio 2017 中调试或跟踪 Angular 绑定?

来自分类Dev

如何解除终端中的快捷方式绑定

来自分类Dev

如何在stmt中从绑定结果中绑定参数

来自分类Dev

用Angular绑定内部绑定

Related 相关文章

热门标签

归档