在AngularJS中,当我在控制器初始化期间向所有控制器广播时,是否必须设置超时以进行广播?
换句话说,我是否必须等待下一个事件周期使用在AngularJS中,当我在控制器初始化期间向所有控制器广播时,是否必须设置超时以进行广播?,angularjs,angularjs-events,Angularjs,Angularjs Events,换句话说,我是否必须等待下一个事件周期使用$rootScope.broadcast()进行广播,以便使用$rootScope.on()的其他控制器可以拾取广播的事件 这不是通常的应用程序流程,但假设我们在应用程序中有一个演示模式,它会短路一些逻辑,不需要去服务器获取一些东西,但可以使用广播()提供演示数据,那么我们必须使用 setTimeout(function() { $rootScope.broadcast(...); }, 0); 这样其他的控制者就可以接收它了 原因是,其他控
$rootScope.broadcast()
进行广播,以便使用$rootScope.on()
的其他控制器可以拾取广播的事件
这不是通常的应用程序流程,但假设我们在应用程序中有一个演示模式,它会短路一些逻辑,不需要去服务器获取一些东西,但可以使用广播()提供演示数据,那么我们必须使用
setTimeout(function() {
$rootScope.broadcast(...);
}, 0);
这样其他的控制者就可以接收它了
原因是,其他控制器可能还不存在。如果应用程序模块定义了5个控制器,或者使用依赖项注入声明它依赖于2组控制器,abc.xyz.controllers
和abc.efg.controllers
因为控制器定义是
.controller("name", function(...) {
})
因此,通过提供函数,您不知道函数何时被调用(创建控制器),但假设所有创建都在第一个事件周期内完成,那么如果您等待一个周期进行广播,那么您可以确保所有控制器都将接收广播?这也是正式记录的吗?甚至我都很想知道,因为我看到很多使用这一方法的例子。你说的可能是真的。