从外部监听AngularJS控制器初始化事件

时间:2014-12-01 20:54:05

标签: javascript angularjs

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

我还有一些在partials中引用的控制器,它们使用ng-include包含在主页面中。这包含一些自定义路由逻辑,允许我决定加载哪个部分。这也相应地改变了网址。

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

我知道我们可以在$viewContentLoaded部分控制器上使用$scope。但是,我必须避免将任何事件侦听器放在主控制器之外。有没有办法实现这一目标?

1 个答案:

答案 0 :(得分:0)

你可以像$ scope一样设置一个标志。$ parent.inited = true;作为子控制器的第一行,然后在主控制器$ scope.inited = false;您可以使用手表检查该标志并在完成后调用某些功能,然后在您单击其他子状态后将其设置为false等等。