当前位置: 首页 > 面试题库 >

如何停止AngularJS中的$ watch?

洪飞龙
2023-03-14
问题内容

我可以在AngularJS范围上设置$ watch,以便在我感兴趣的表达式发生更改时得到通知。但是一旦失去兴趣我该如何停止观看?


问题答案:

当调用$watch一个函数时,该函数将取消注册绑定的表达式。

例如,要观看变量foo仅更改一次:

var unregister = $scope.$watch('foo', function () {
  // Do something interesting here ...
  unregister();
});

希望能有所帮助:-)



 类似资料:
  • 问题内容: 是否有一种内置的方法来阻止事件进入作用域链? 由事件传递的事件对象没有方法(如$ rootScope上 的文档所述。)但是,此合并的pull请求表明事件可以对其进行调用。 问题答案: 来自angularJS 1.1.2源代码的片段: 如您所见,$ broadcast中的事件对象没有“ stopPropagation”。 可以使用preventDefault代替stopPropagati

  • 问题内容: 我正在制作一个演示,其中我将使用固定时间间隔从服务器上获取数据,现在我需要停止/取消此操作。 我该如何实现?如果需要重新启动该过程,该怎么办? 其次,我还有一个问题:经过规定的时间间隔后,我正在从服务器获取数据。有需要使用还是? 这是我的朋克: http://plnkr.co/edit/ly43m5?p=preview 问题答案: 您可以存储间隔返回的承诺并用于该承诺,这将取消该承诺的

  • 问题内容: 在摘要循环中,对变量进行脏检查,即是否有100个范围变量,并且如果我更改一个变量,则它将监视所有变量。 假设我有100个彼此独立的范围模型变量。如果我对一个变量进行了更改,那么我不想检查所有其他99个变量。有什么办法吗?如果是,怎么办? 问题答案: 令人惊讶的是,这通常不是问题,即使具有数千个绑定,浏览器也不会出现问题,除非表达式很复杂。的常见答案 是 。 解决方案: 从开始,这很容易

  • 问题内容: 该程序在九次打印后完成: 如何停止进程(例如eclipse中的Java进程),因为它在9秒的时间限制后没有停止? 问题答案: 您遇到的问题是,取消哔声任务后,调度程序会保留活动线程。 如果存在活动的非守护程序线程,则JVM保持活动状态。 它使该线程保持不变的原因是您已在此行中告诉它这样做: 请注意以下文档: -即使在空闲状态下要保留在池中的线​​程数。 因此,您有两种可能的方法来导致J

  • 问题内容: 我有一个goroutine,它调用一个方法,并在通道上传递返回的值: 如何停止这种goroutine? 问题答案: 编辑: 在意识到您的问题是关于将值发送到goroutine中的chan之前,我匆忙编写了此答案。 下面的方法可以与上面建议的其他chan一起使用,或者利用您已经拥有的chan双向的事实,您可以只使用一个… 如果您的goroutine仅用于处理来自chan的项目,则可以使用

  • 问题内容: 要找出mysqld的启动命令(使用Mac),我可以这样做: 我得到以下输出,这使我可以启动mysql服务器。 我如何找到必要的命令以从命令行停止mysql? 问题答案: 尝试: 要么: 要么: 要么: 如果 在OSX中 安装 Launchctl,则 可以尝试: MacPorts 注意:重新启动后,此设置将持续存在。 家酿 二进制安装程序 我发现在:https : //stackover