我有一个手动引导的角度模块。我试图让它$rootScope
附加一个事件侦听器$viewContentLoaded
。
这是我的代码:
angular.bootstrap(el, [appname]);
//////////////////////////// Fixing links
console.log('patching');
var $rootScope = angular.injector([appname]).get('$rootScope');
console.log($rootScope);// Scope { $id=139, $root=Scope, $$destroyed=false, more...}
$rootScope.$on('$viewContentLoaded', function () {
console.log('$viewContentLoaded');
});
我得到了一个范围$id=139
,并且事件没有在它应该触发的时候触发。
如果我尝试$rootScope
进入我的模块主控制器内部,我会得到:
console.log('myController',$rootScope);
Scope { $id=120, $$childTail=Scope, $$childHead=Scope, more...}
我得到一个$rootScope
id 120 ???
如果我将事件附加到模块内的控制器,则事件处理程序会正常工作。
那我做错了什么?我怎样才能rootScope
在其控制器之外获得正确的模块?
我应该提到我有一个多应用程序环境。我有一个加载和引导其他模块的主模块,我想知道这个其他模块 viewContent 何时完成加载,而无需手动将代码添加到每个模块中......
注意:我可以得到$rootScope
这样的:
var $rootScope = angular.element(el).scope().$root;
但这在$compileProvider.debugInfoEnabled(false);
:(