3

サービスからユーザープロファイルをロードするまで、メインコントローラー/テンプレート(AppController)のロードを延期しようとしています。

すべてのナビゲーションルートで、resolveを使用して$routeProviderを使用しています

.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の解決を行うにはどうすればよいですか?基本的に、AppControllerが実際に実行される前に実行を終了するという約束を返すuserService.getUser()が欲しいのですが、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 に答える