2

换句话说,我是否必须等待下一个事件周期才能使用 广播$rootScope.broadcast(),以便其他控制器使用$rootScope.on()可以接收广播的事件?

这不是通常的应用程序流程,但是假设我们在应用程序中有一个演示模式会短路一些逻辑,并且不需要去服务器获取一些东西,但可以使用提供演示数据broadcast(),是真的吗我们必须使用

setTimeout(function() { 
    $rootScope.broadcast(...);
}, 0);

以便其他控制器将其接起?

原因是,其他控制器可能还不存在。如果 app 模块定义了 5 个控制器,或者使用依赖注入来声明它依赖于 2 组控制器,abc.xyz.controllers并且abc.efg.controllers.

由于控制器定义是

.controller("name", function(...) {

})

所以通过提供该函数,您不知道何时调用该函数(创建控制器),但假设所有创建都在第一个事件周期中完成,那么如果您等待一个周期广播,那么您可以确定所有控制器都会接收广播吗?这也正式记录了吗?

4

0 回答 0