为什么我们在AngularJS中使用$ rootScope$ broadcast?

【字号: 日期:2024-04-08浏览:53作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决为什么我们在AngularJS中使用$ rootScope$ broadcast??怎么$rootScope.$broadcast办?

$rootScope.$broadcast正在通过应用程序范围发送事件。该应用程序的任何子级范围都可以使用以下简单方法捕获它:$scope.$on()。

当您想要到达不是直接父级的范围(例如,父级的分支)时,发送事件特别有用

!!! 但是, 一件事是$rootScope.$on从控制器使用。$rootScope是应用程序,当控制器被销毁时,事件侦听器将仍然存在,而当再次创建控制器时,它将堆积更多的事件侦听器。(因此一次广播将被多次捕获)。$scope.$on()改为使用,监听器也将被销毁。

$rootScope.$broadcast&和有$rootScope.$broadcast.apply什么区别?

有时您必须使用apply(),尤其是在使用指令和其他JS库时。但是,由于我不知道该代码库,因此我无法确定是否是这种情况。

解决方法

试图找到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?

相关文章: