我需要在加载和渲染第一个控制器后调用另一个控制器。意味着我想逐个调用控制器,当一个控制器成功加载并渲染,然后启动另一个控制器。
答案 0 :(得分:0)
你需要使用$ broadcast,使用它可以在你的第一个控制器发生变化时通知另一个控制器。
Angular为此提供$ broadcast,$ on和$ emit。
如果以上不符合您的要求,您应该使用AngularJS stateprovider(ui-router并定义状态并绑定您的控制器。
首先调用state1,它有controller1,如果一切正常,那个控制器调用state2有controller2
$ state.go(" STATE2&#34);
var routerApp = angular.module('module-name', ['ui.router']);
routerApp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/state1');
$stateProvider
.state('state1', {
url: '/state1',
templateUrl: 'state1.html',
controller : 'controller1'
})
.state('state2', {
url: '/state2',
templateUrl: 'state2.html',
controller : 'controller2'
})
});
的index.html
<div ui-view></div>
控制器
routerApp.controller("controller1", ['$state', function($state){
//after
$state.go("state2");
}]);