如何在第一个控制器加载并在angularjs中渲染时调用第二个控制器?

时间:2015-12-22 12:05:02

标签: angularjs

我需要在加载和渲染第一个控制器后调用另一个控制器。意味着我想逐个调用控制器,当一个控制器成功加载并渲染,然后启动另一个控制器。

1 个答案:

答案 0 :(得分:0)

你需要使用$ broadcast,使用它可以在你的第一个控制器发生变化时通知另一个控制器。

Angular为此提供$ broadcast,$ on和$ emit。

answered here

如果以上不符合您的要求,您应该使用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>

ui-router example here

控制器

routerApp.controller("controller1", ['$state', function($state){
//after 

$state.go("state2");

}]);