我在解决中所说的“解决”是指我希望能够先解决用户,然后再解决其所有其他信息,例如地址,联系人,朋友。

我目前所拥有的:

.state('website', {
            url : '',
            abstract : true,
            resolve : {
                // Request the current signed in user >
                current_user : ['Auth', function(Auth){
                    return Auth.requestUser();
                }]
            },
            views : {
                'main' : {
                    templateUrl : 'template.html'
                }
            }
        })


我想要做的是以下内容:

.state('website', {
            url : '',
            abstract : true,
            resolve : {
                // Request the current signed in user >
                current_user : ['Auth', function(Auth){
                    Auth.requestUser().then(function(){
                       // HERE I WANT TO RESOLVE OTHER RESOURCES
                       // WHAT WILL I RETURN HERE?
                    });
                }]
            },
            views : {
                'main' : {
                    templateUrl : 'template.html'
                }
            }
        })


我不确定这是否可行。

最佳答案

您可以将“已解析”参数注入其他解析函数中:

resolve: {
  current_user: ['Auth', function(Auth){
    return Auth.requestUser();
  }],

  // "Svc" here is some service I assume you have to get friends, address, etc...
  friends: ["Svc", "current_user", function(Svc, current_user){
     // Svc.getFriends can return a promise or a value
     return Svc.getFriends(current_user);
  }],

  address: ["Svc", "current_user", function(Svc, current_user){
     return Svc.getAddress(current_user);
  }]
}


然后,在该状态的控制器中,可以注入current_userfriendsaddress作为参数:

.controller("WebsiteMainViewCtrl", function($scope, current_user, friends, address){
   // ...
})

关于javascript - Angular JS解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30185897/

10-16 20:11