Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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 角度:将$viewContentLoaded附加到手动引导的应用程序_Javascript_Angularjs_Module_Rootscope - Fatal编程技术网

Javascript 角度:将$viewContentLoaded附加到手动引导的应用程序

Javascript 角度:将$viewContentLoaded附加到手动引导的应用程序,javascript,angularjs,module,rootscope,Javascript,Angularjs,Module,Rootscope,我有一个手动引导的angular模块。我正在尝试让它的$rootScope为$viewContentLoaded附加一个事件侦听器 这是我的密码: angular.bootstrap(el, [appname]); //////////////////////////// Fixing links console.log('patching'); var $rootScope = angular.injector([appname]).get('$rootScope'); console.log

我有一个手动引导的angular模块。我正在尝试让它的
$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');
});
我得到了一个scope
$id=139
,事件没有在应该触发的时候触发

如果我试图在模块主控件中获取
$rootScope
,我会得到:

console.log('myController',$rootScope);
Scope { $id=120,  $$childTail=Scope,  $$childHead=Scope,  more...}
我得到一个id为120的
$rootScope

如果我将事件附加到模块内部的控制器上,事件处理程序就会正常工作

那么我做错了什么? 如何获得控制器外部模块的正确
rootScope

我应该提到,我有一个多应用程序环境。我有一个加载和引导其他模块的主模块,我试图知道其他模块viewContent何时完成加载,而不向每个模块手动添加代码

注: 我可以像这样获得
$rootScope

var $rootScope = angular.element(el).scope().$root;

但是当
$compileProvider.debugInfoEnabled(false)时,这不起作用:(

好的,如果有人感兴趣的话,下面是我的结论:

(function (angular) {

    var origMethod = angular.module;

    angular.module = function (name, reqs, configFn) {
        var module = origMethod(name, reqs, configFn);

        module.run(function ($rootScope) {
            //////////////////////////// Fixing links
            $rootScope.$on('$viewContentLoaded', function () {
                ___fixLinks($('[ng-view],ng-view,.ng-view','[ngg-app="' + name + '"]'));
            });
        });

        return module;
    };

})(angular);