试图找到一些基本信息为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是什么?
$ rootScope。$ broadcast正在通过应用程序范围发送事件。
该应用程序的任何子范围可以捕获它使用一个简单:$ scope。$ on()。
当您想要达到不是直接父类(例如父类的分支)的范围时发送事件特别有用,
谢谢!然而,不要做的一件事是从控制器使用$ rootScope。$ on。 $ rootScope是应用程序,当你的控制器被销毁时,事件监听器仍然存在,当你的控制器将被再次创建时,它只会堆积更多的事件监听器。 (所以一个广播将被捕获多次)。使用$ scope。$ on(),而且监听器也会被销毁。
> $ rootScope。$ broadcast& $ rootScope。$ broadcast.apply?
有时你必须使用apply(),特别是在使用指令和其他JS库时。然而,由于我不知道代码库,我不能够告诉是否是这种情况。