3

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

对于所有导航路线,我使用 $routeProvider 和 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 来执行此操作(或者如果可能,我认为只有表达式不是承诺可以执行)。

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

4

1 回答 1

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;
     }
}
于 2013-03-26T11:34:46.220 回答