[AngularJS] Using the Angular scope $destroy event and method

With Angular scopes, you have access to a $destroy event that can be used to watch $scope events. This is used for cleanup, and gives you a final opportunity to access any data on a scope. Scopes also have a (rarely used) $destroy method that allows you to manually destroy a scope.

 

复制代码
<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css"/>

  <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular.js"></script>
  <script src="app.js"></script>
</head>
<body ng-app="demo" ng-init="isToggled = true">

<div ng-if="isToggled">

  <div ng-controller="MyCtrl as my">
    Simple Form
    <input type="text" ng-model="my.person.firstName"/>
    <input type="text" ng-model="my.person.lastName"/>
    Welcome, {{ my.person.firstName }} {{ my.person.lastName }}
    <button ng-click="my.click()">Toggle</button>
  </div>

  <my-directive></my-directive>

</div>

<hr/>

</body>
</html>
复制代码

 

复制代码
angular.module("demo", [])

    .factory("person", function () {
        return {
            firstName: "John",
            lastName: "Lindquist"
        }
    })

    .controller("MyCtrl", function ($scope, person) {
        var my = this;
        my.person = person;

        my.click = function () {
            $scope.$destroy();
        }

    })

    .directive("myDirective", function () {
        return {
            restrict: "E",
            scope: {},
            template: "<div style='border: 1px solid black'>My Directive</div>",
            link: function (scope) {
                scope.$on("$destroy", function () {
                    console.log("directive destroy");
                })
            }
        }
    })
复制代码

 

When you toggle ng-if, actually it triggle $scope.$destory. 

Once $destory() is triggered, scope is destoried, no event and binding to the scope any more.

 

posted @   Zhentiw  阅读(1505)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示