当作用域被销毁时,我是否需要“取消监视”作用域变量?

2023-11-24

以下是来自 Angular 的文档。我正在观察属于此范围的几个变量,以构建过滤字符串ng-grid。当这个作用域被销毁时,我是否需要通过调用返回值来取消监视它们$scope.$watch,或者范围的破坏足以解决这个问题吗?如果正在监视的变量不属于此范围怎么办?

如果我不“取消监视”与作用域一起被破坏的变量,我会泄漏内存/导致性能问题吗?


$destroy()

从父作用域中删除当前作用域(及其所有子作用域)。删除意味着调用$digest()将不再传播到当前作用域及其子作用域。删除还意味着当前作用域符合垃圾回收条件。

The $destroy()通常由诸如以下的指令使用ngRepeat用于管理循环的展开。

就在范围被销毁之前,$destroy事件在此范围内广播。应用程序代码可以注册一个$destroy事件处理程序将使它有机会执行任何必要的清理。

请注意,在 AngularJS 中,还有一个$destroyjQuery 事件,可用于在从 DOM 中删除元素之前清理 DOM 绑定。


快速浏览一下源代码就会发现,删除函数返回的是$watch不做任何异国情调的事情。它只是从列表中删除一个项目scope.$$watchers array.

因此,一旦作用域被销毁,整个数组就会随之消失,垃圾收集器将为您清理所有内容。

无论您在观看什么,手表本身都会存储在示波器中。这就是为什么,为了使用$watch,你不打电话angular.$watch,而是你打电话$scope.$watch.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当作用域被销毁时,我是否需要“取消监视”作用域变量? 的相关文章

随机推荐

  • KornShell 中的正则表达式

    我试图检查一个变量是否恰好是两个数字 但我似乎无法弄清楚 如何在 KornShell ksh 中检查正则表达式 regex 我努力了 if month 0 9 2 if month 0 9 2 我无法找到任何有关它的文档 有什么见解吗 ca
  • 路由器后面的android套接字编程

    我有疑问或问题 我正在尝试在两部 Android 手机之间建立 p2p 连接 我将每部电话连接到我的服务器 并获取它们的私有 192 168 1 1 和公共 76 123 288 22 IP 以及它们连接到我的服务器的端口 当电话连接到服务
  • 使用 IdentityServer4 从多个 API 创建用户

    所以我已经为这个问题苦恼了一段时间了 我们有一个网络应用程序正在使用身份服务器4 and AspNet身份验证和注册用户 这是按预期工作的 此外 我们还有另一个 API 在同一解决方案中 能够使用 IdentityServer4 对访问 A
  • iOS - 在导航栏标题中添加图像和文本

    我想创建一个类似于所附图像中的导航栏 导航栏的标题将是图像和文本的组合 是否应该按照最佳实践来完成此操作 如何做呢 As 这个答案显示 最简单的解决方案是将文本添加到图像中 然后将该图像添加到导航栏 如下所示 var image UIIma
  • 如果用户使用 IE8 浏览则禁用脚本

    如果用户使用 Internet Explorer 8 浏览 我想要一个 javascript 代码来禁用我编写的脚本 尝试这个 用于禁用 IE 8 的脚本 用于禁用 IE 8 及更高版本的脚本
  • 有没有简单的方法可以在没有 site:site 的情况下从 Maven 生成 Findbug HTML 报告?

    我正在尝试将 FindBugs 集成到 Maven 项目中 有人有样品吗pom xml在目标中生成一个简单的 findbug HTML 报告 是否可以生成此报告而无需运行site site Findbugs jar 包含 5 个 XSLT
  • 如何更改导航栏颜色?

    我想要一个半透明的状态栏和一个其他颜色的导航栏 而不是半透明的 如蓝色或白色 My code
  • 如何检查提供的 CSRF 令牌在 Symfony2 中是否无效?

    我创建了一个 Symfony2 表单并将其绑定到请求 在继续处理表单的其余部分之前 我需要明确确保 CSRF 令牌是否有效 无效 form token gt isValid throws OutOfBoundsException消息 Chi
  • 如何解析格式为“Name ”的字符串

    我有一种方法可以接收以下格式之一的联系人 1 电子邮件受保护 2 名称 电子邮件受保护 gt 或 姓名 电子邮件受保护 gt 可以存在空格 如果它是格式 1 我什么也不做 对于 2 我需要解析姓名和电子邮件 我永远不知道我会收到哪种格式的电
  • 无法解析符号 AndroidJUnit4

    我正在尝试为我的应用程序添加登录facebook 但是当我添加执行此操作所需的存储库时 它导致了一个错误 AndroidJUnit4 现在无法解析 示例InstrumentedTest java package com example us
  • Cordova 想要 android-19,我有 android-20

    这里有很多关于运行 cordova add platform android 命令的问题的问题 我已经尝试了每种有目的的解决方案 但没有一个对我有帮助 错误信息 sandbox hello cordova platform add andr
  • CMake 中 CUDA 库的链接

    我正在使用 CMake 3 10 并且在将已编译的库链接到 CMake 中的测试可执行文件时遇到问题 我进行了大量搜索 发现在早期版本中存在一个问题 即无法在结果可执行文件中链接中间库 我无法判断这是否已解决或仍然是一个问题 我的 CMak
  • 重写取消应用方法

    我有一个case来自图书馆课程 我想覆盖unapply method 减少参数数量我需要通过对其进行模式匹配 我这样做 object ws1 a library class case class MyClass a Int b String
  • 我需要 T-SQL 将数据导出到 CSV(带标题)的最佳实践

    我需要做的是使用 T SQL 将数据导出到 CSV 文件 我很困惑有很多方法可以做到这一点 我不知道选择哪一种 请帮我确认以下内容 据我所知大概有3种方法 请您帮我确认一下 使用 Microsoft Jet OLEDB 4 0 如下所示 I
  • GlassFish v3 和 glassfish-maven-plugin (Mac)

    我正在尝试使用 glassfish maven plugin https maven glassfish plugin dev java net 与 GlassFish v3 我在 Mac 上并使用 Eclipse 但我似乎无法部署我的 W
  • Interface Builder(iPhone dev)自定义按钮背景图像不考虑拉伸设置

    我正在尝试使用 Interface Builder 中的背景图像创建自定义按钮 图像具有可拉伸和不可拉伸的部分 以便可以调整其大小 IB 公开了 Stretching 属性以实现此目的 但我输入的任何值都不会影响按钮的显示方式 它始终完全拉
  • Flexbox - 填充剩余空间[重复]

    这个问题在这里已经有答案了 我有一个像这样的基本弹性盒布局 body html height 100 width 100 container width 100 background grey display flex flex direc
  • 使用 CSS 和 Bootstrap 创建自定义复选框

    我使用引导框架进行了以下标记 div class col md 4 div class custom container img class center block img responsive img circle invite con
  • 50% 内联块未彼此相邻显示

    说我有 span class ib half span span class ib half span and ib half display inline block width 50 我希望这两个跨度并排显示 但它们不会 没有边距 内边
  • 当作用域被销毁时,我是否需要“取消监视”作用域变量?

    以下是来自 Angular 的文档 我正在观察属于此范围的几个变量 以构建过滤字符串ng grid 当这个作用域被销毁时 我是否需要通过调用返回值来取消监视它们 scope watch 或者范围的破坏足以解决这个问题吗 如果正在监视的变量不