这取决于“结束”事件的含义。是第二个应用程序模块完成初始化的那一刻,还是第二个模块的“主控制器”完成渲染它的视图的那一刻。如果是前者,则可以使用第二个模块的运行块。
从模块文档:
运行块 - 创建注入器后执行...
因此,在您的情况下,您可以.run
在第二个模块上设置一个块来在window
全局范围内设置一些变量,并且您可以在第一个模块中为该变量设置一个侦听器。所以本质上,您将使用window
对象在模块之间共享数据。
HTML:
<div id="one" ng-cloak ng-controller="oneCtrl" ng-hide="hide">
<input type="text" ng-model="path" placeholder="here..." />
<button ng-click="save()">save</button>
<button ng-click="two()">two()</button>
</div>
<hr/>
<div id="two" ng-cloak ng-controller="twoCtrl">
<span>{{path}}</span>
</div>
angular
.module('oneApp', [])
.controller('oneCtrl', function($scope, $window) {
$scope.hide = false;
$scope.two = function() {
angular.bootstrap($('#two'),['twoApp']);
};
$scope.$watch(function(){
return $window.twoAppIsSet;
}, function(twoAppIsSet){
$scope.hide = twoAppIsSet;
});
});
angular
.module('twoApp', [])
.controller('twoCtrl', function($scope) {
$scope.path = window._path;
})
.run(function($window){
$window.twoAppIsSet = true;
});
angular.element(document).ready(function() {
angular.bootstrap($('#one'), ['oneApp']);
});
FIDDLE