Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在AngularJS中,当我在控制器初始化期间向所有控制器广播时,是否必须设置超时以进行广播?_Angularjs_Angularjs Events - Fatal编程技术网

在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(...) {

})

因此,通过提供函数,您不知道函数何时被调用(创建控制器),但假设所有创建都在第一个事件周期内完成,那么如果您等待一个周期进行广播,那么您可以确保所有控制器都将接收广播?这也是正式记录的吗?

甚至我都很想知道,因为我看到很多使用这一方法的例子。你说的可能是真的。