Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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
Javascript 外部侦听AngularJS控制器初始化事件_Javascript_Angularjs - Fatal编程技术网

Javascript 外部侦听AngularJS控制器初始化事件

Javascript 外部侦听AngularJS控制器初始化事件,javascript,angularjs,Javascript,Angularjs,我有一个控制器(比如主控制器),它控制主页并维护所有事件侦听器,如$locationChangeSuccess,等等 我还有几个控制器在部分中引用,它们使用ng include被包含到主页中。这是一些自定义路由逻辑的包装,允许我决定加载哪个部分。这也会相应地更改url 我可以使用$locationChangeSuccess事件收听位置更改。但是,这并不保证与通过ng include加载的部件相对应的控制器已初始化 我知道我们可以在partial控制器的$scope上使用$viewContentL

我有一个控制器(比如主控制器),它控制主页并维护所有事件侦听器,如
$locationChangeSuccess
,等等

我还有几个控制器在部分中引用,它们使用
ng include
被包含到主页中。这是一些自定义路由逻辑的包装,允许我决定加载哪个部分。这也会相应地更改url

我可以使用
$locationChangeSuccess
事件收听位置更改。但是,这并不保证与通过
ng include
加载的部件相对应的控制器已初始化


我知道我们可以在partial控制器的
$scope
上使用
$viewContentLoaded
。但是,我必须避免将任何事件侦听器放在主控制器之外。有什么方法可以实现这一点吗?

您可以设置一个类似$scope的标志。$parent.inited=true;作为分包商的第一行,然后在主控制器中$scope.inited=false;您可以使用手表检查该标志,并在完成后调用一些函数,然后在单击转到其他子状态时将其设置为false,以此类推。

谢谢@Santiago。理想情况下,我希望使分包商不受任何锅炉板代码的影响,如
$scope.$parent.inited=true
。主控制器是否有其他方法可以在位置更改完全完成后检测页面加载?您可以从您的子滚轴发出和事件,并像从主滚轴发出和事件一样侦听。我希望避免任何与事件相关的逻辑进入子滚轴。顺便说一句,我发现从主控制器收听
$includeContentLoaded
可以解决我的问题。