`
LiYunpeng
  • 浏览: 954531 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

angularJS中$scope删除监听事件的操作

阅读更多
在一个controller代码块被释放掉的时候,我们通常要将一些监听的事件同时释放掉
正常的$scope是不需要我们来维护的

但是当我们对$rootScope进行监听的时候,类似的全局变量或者说在其他地方依然有引用的变量是不会被释放掉的,而我们在controller中对rootScope做对应的事件监听,比如说stateChange等,每次controller初始化都要监听一次



删除监听的做法是,在rootScope.on方法上,接受它的返回值(是一个function),当scope将要destroy的时候,将返回的函数执行一边,然后把对应的引用同时删掉即可

类似代码如下

var listener = $rootScope.$on('$stateChangeSuccess',function(event, toState, toParams, fromState, fromParams){
      ......
    });
    $scope.$on('$destroy',function() {
      listener();
      listener = null;
    })
分享到:
评论

相关推荐

    Angularjs的$http异步删除数据详解及实例

    综上所述,Angularjs的$http服务在处理异步删除数据时提供了强大的工具,但在实际使用中仍需仔细规划操作流程和异常处理,确保数据的一致性和应用的稳定性。希望本文内容能够帮助开发者更好地理解和运用Angularjs...

    Angularjs结合Bootstrap制作的一个TODO List

    在这个例子中,`$scope.add`函数用于添加新待办事项,`$scope.delete`用于删除已完成的事项,而`$scope.doneCount`则计算已完成的待办事项数量。 通过将AngularJS的动态功能与Bootstrap的UI设计相结合,我们可以...

    最新AngularJS开发宝典视频教程 后盾网AngularJS培训视频教程 后盾网.txt

    ├最新AngularJS开发宝典—第042讲 $scope.$watch监听数据变化.mp4 ├最新AngularJS开发宝典—第043讲 使用$watch与$filter过滤器制作数据筛选实例.mp4 ├最新AngularJS开发宝典—第044讲 自定义过滤器之手机加星...

    AngularJS封装jQuery-File-Upload

    这些事件需要通过jQuery-File-Upload提供的API来触发,并在AngularJS环境中相应地调用控制器的方法。 在服务层面,我们可以创建一个服务来封装文件上传的逻辑,这样可以在多个控制器之间共享。服务可以使用`$http`...

    使用ngResource使用AngularJS上传文件

    在HTML模板中,我们可以使用AngularJS的`ngFileChange`指令监听文件选择事件,以及`ngClick`触发文件上传: ```html (file)"> ()">上传文件 ``` 在这个例子中,当用户选择文件后,`ngFileChange`事件会被触发,`...

    angularjs实现简单的购物车功能

    在AngularJS中,实现总金额的计算需要利用$watch监听器来监听商品数量的变更。当商品数量发生变动时,会触发一个更新总金额的函数。 ```javascript $scope.$watch('cart', function (newVal, oldVal) { // 计算总...

    Angularjs(增删改+分页+弹框+Sql数据库)

    - **控制器(Controller)**: 处理业务逻辑和数据操作,将数据注入到`$scope`中供视图使用。 2. **增删改功能**: - **新增(Add)**: 可以使用表单元素(如`<input>`)结合`ng-model`收集用户输入,通过控制器的...

    angularjs增删 改查

    2. **控制器(Controller)**:在AngularJS中,控制器是处理业务逻辑的地方,可以添加、删除、修改和查询数据。控制器通过`ng-controller`指令在HTML中声明,如`<div ng-controller="MyCtrl">...</div>`。 3. **...

    Angular 案例

    3. **等待`DOMContentLoaded`事件触发**:AngularJS会监听`DOMContentLoaded`事件,确保DOM完全加载后再继续后续处理。 4. **查找`ng-app`指令**:AngularJS会在DOM中查找`ng-app`指令,该指令定义了AngularJS应用...

    AngularJS Handbook_ Easy Web App Development

    AngularJS中的作用域(Scope)是隔离的,并且形成了一个层次结构。每个作用域都有自己的模型数据和监听器。当父作用域中的数据发生改变时,子作用域也会相应地更新。 **示例:** ```javascript var parentScope = ...

    浅谈Angular.js中使用$watch监听模型变化

    在Angular.js中,$watch是一个非常重要的机制,它允许开发者监听数据模型的变化,并在数据发生变化时执行特定的操作。$watch函数是一个scope的方法,可以绑定在控制器、服务或者指令中,用于设置一个监视器,监视...

    private-leaking-investigation:用于演示 AngularJS 内存泄漏的示例应用程序

    1. **正确管理Scope**:确保在离开某个路由或销毁组件时,使用`$destroy`事件来清理Scope上的事件监听和资源。 2. **及时取消订阅**:在不再需要监听事件时,使用`$scope.$on('$destroy', function() {...})`来取消...

    Angular实现的table表格排序功能完整示例

    在AngularJS中,实现table表格排序功能是一项常见的需求,它涉及到事件监听、数据处理和DOM操作。本示例将详细讲解如何在AngularJS环境中构建一个具备排序功能的表格。 首先,我们创建一个AngularJS应用模块,并...

    angularfire:AngularJS + Firebase 模板

    4. **数据绑定**:使用`$firebaseArray`或`$firebaseObject`创建与Firebase数据库的引用,然后将这些对象绑定到AngularJS的$scope上。 5. **操作数据**:你可以像操作普通的JavaScript对象一样对Firebase数据进行...

    angularjs-curd

    - `$scope`是AngularJS中的核心概念,它是控制器与视图之间的桥梁,用于存储和管理应用状态。 - `ng-app`指令用于定义AngularJS应用的启动元素。 - `ng-model`指令将HTML表单控件与应用程序的数据模型绑定。 2. ...

    AngularJS+Bootstrap+CSS4.0+js

    1. **事件处理**:监听并响应用户操作,如点击、滚动等。 2. **AJAX**:异步数据交换,更新页面内容而无需刷新整个页面。 3. **DOM操作**:动态创建、修改或删除HTML元素。 4. **动画效果**:使用JavaScript库如...

    ionic中列表项增加和删除的实现方法

    这里,`$scope`是AngularJS中的作用域对象,它连接视图和控制器。`addMaster`函数将一个新对象添加到`masters`数组的末尾,这样`ng-repeat`就会自动根据新的数组长度创建新的列表项。 对于删除操作,通常会在每个...

    前端开源库-adm-trv

    `adm-trv` 是AngularJS生态中的一个重要组件,它为开发者提供了一种简单易用的方式来展示和操作层级数据。其强大的功能和良好的扩展性使得它在各种项目中都能得心应手。通过深入理解和灵活运用`adm-trv`,可以提升...

Global site tag (gtag.js) - Google Analytics