开始控制器工作的回调

时间:2015-08-30 10:59:51

标签: angularjs

我有两个控制器

angular.module('myApp.controllers', [])

.controller('Controller1',function(){
        getController1();
    })
    .controller('Controller2',function(){
        getController2();
    })

我在GET服务中有一些$ http功能:

.service("geInfo", function() {

    })

我希望我的控制器只有在我获得服务数据时才会启动。 我必须使用$ q(承诺),$ watch或其他什么? 有人可以举例吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您必须在配置阶段解决它:

    (function() {
        'use strict';

        angular
            .module('dashboardApp', [
                'ngRoute'
            ])
            .config(config);

            /* @ngInject */
            function config($routeProvider) {              
                   $routeProvider
                     .when("/youUrl", {
                        templateUrl: "youtTemplate.html",
                        controller: "yourController",
                        resolve: {
                           initInfo: function(infoService){
                               return infoService.getInfo();
                            }
                        }
                     });

            }
     })();

现在你的控制器中有initInfo

.controller('Controller2',function($scope, initInfo){
    $scope.info = initInfo;
})

通过这种方式,路由器不会加载视图,直到您的服务返回initInfo。