angularjs - 在 $rootScope 上运行 $apply 与任何其他范围

标签 angularjs angularjs-scope

$apply 函数可以在任何作用域上运行,包括 $rootScope

在某些情况下,如果我在本地作用域上运行它,或者在我的 $rootScope 上运行它,会有什么不同吗?

我这么问是因为我想创建一个辅助函数,将给定函数包装在 $apply 中。为此,我总是需要传递一个作用域,这 A) 很烦人,B) 不容易,因为我不一定有本地作用域。

我希望始终让我的辅助函数在 $rootScope 上调用 $apply,但如果这样做存在风险,则不这样做。

最佳答案

在任何作用域上运行 $apply 始终会生成 $rootscope.$digest。唯一可能产生影响的情况是当您提供表达式作为 $apply 的参数时。该表达式将在当前作用域(相对于 $rootScope)进行计算,但之后$rootscope.$digest总是被调用。

源码很清晰:rootScope.js

底线: 如果您不带参数调用 $apply,则没有区别。

关于angularjs - 在 $rootScope 上运行 $apply 与任何其他范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17868889/

相关文章:

javascript - 从父 Controller 在 Angular Modal 中显示动态内容

javascript - AngularJS 范围直到在 ui 中执行某些操作后才会更新,比如单击具有函数的对象

angularjs - 为什么指令中的同一个值同时定义和未定义?

angularjs - 在 angularjs 的文本框中显示建议

javascript - 带有 chart.js 的 angularjs 中的响应式图表

javascript - 如何在 AngularJS 中的 $http.post -> 解析/拒绝中绑定(bind) "this"? (现在 this = Window 对象)

javascript - AngularJS-ng-repeat 中的项目未在变量更新时更新

javascript - 在 IE10 中用 Tab 键浏览内容

javascript - NodeJs后端代码结构

javascript - Bootstrap 模式没有出现屏幕空白