$rootScope
手動でブートストラップするAngularモジュールがあります。イベントリスナーをアタッチするために取得しようとしてい$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
モジュールのメインcontrolelrの内部を取得しようとすると、次のようになります:
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);
:(