使用ng-controller时延迟模板加载

时间:2013-03-26 09:38:56

标签: angularjs

我正在尝试推迟加载我的主控制器/模板(AppController),直到我从服务加载用户配置文件。

对于所有导航路线,我使用$ routeProvider with resolve

.when('/edit/:editId', {
    templateUrl: 'editTemplate.html',
    controller: 'EditController' // this is a child controller of AppController
    resolve: {
         currentUser: ['svc.user', function(userSvc) { return userService.getUser(); }]
    }
// and so on..

但对于我正在使用的AppController

如何解决AppController问题?本质上,我想要一个userService.getUser(),它返回一个承诺,在AppController实际运行之前完成执行,我不知道如何使用ng-init执行此操作(或者如果可能,我认为只有表达式不承诺可以执行)。

感谢您提供任何帮助/协助。

1 个答案:

答案 0 :(得分:1)

如本视频所示:http://egghead.io/video/angularjs-resolve/

你应该尝试:

.when('/edit/:editId', {
  templateUrl: 'editTemplate.html',
  controller: 'EditController' // this is a child controller of AppController
  resolve: {
     currentUser: ['svc.user', function(userSvc) { return userService.getUser(); }]
     app: function ($q) {
                var defer = $q.defer();
                defer.resolve();
                return defer.promise;
     }
}