我有一个场景,我想在一个控制器中发送一个广播事件,并让一个指令的控制器接收消息。该事件在控制器启动时立即发送,问题是由于指令使用 templateUrl 加载视图,它异步发生,因此在指令控制器初始化之前广播事件。如果视图位于主页正文中,则不会发生此问题,但我想控制器初始化顺序可能仍然存在问题。
我在我的主控制器中使用以下代码:
$rootScope.$broadcast("event:myevent");
我在这里重现了这个问题:http: //jsfiddle.net/jugglingcats/7Wf8N。
您可以在 Javascript 控制台中看到主控制器在指令控制器之前初始化,并且它永远不会看到该事件。
所以我的问题是是否有办法等到所有控制器都初始化后再广播事件?
非常感谢