【发布时间】:2014-09-09 22:14:31
【问题描述】:
试图找到 AngularJS $rootScope.$broadcast 的一些基本信息,但是 AngularJS 文档并没有多大帮助。简单来说,我们为什么要使用它?
此外,在 John Papa 的 Hot Towel 模板中,在名为 $broadcast 的公共模块中有一个自定义函数:
function $broadcast() {
return $rootScope.$broadcast.apply($rootScope, arguments);
}
我不明白这是在做什么。所以这里有几个基本问题:
1) $rootScope.$broadcast 是做什么的?
2)$rootScope.$broadcast和$rootScope.$broadcast.apply有什么区别?
【问题讨论】:
-
使用
$rootScope.$broadcast.apply()是因为如果要将特殊的arguments对象传递给另一个函数,则需要使用apply()(而不是call())。除了@Blackhole 在申请时指向 MDN 页面的链接,您还可以查看arguments上的条目。