这是appRouteConfig.js状态,其中
我使用$promise验证userList:

.state('userAccounts',{
    url:'/userAccounts',
    controller:'UserAccount',
    resolve:{
        registerService: "registerService",
        userList: function(registerService){
            return registerService.AllUser().$promise;
        }
    },
    templateUrl:'UserAccounts/UserAccountsView.html'
})


这是registerService.js

    AllUser: function(){
        return $http.get('api/allUser');
    }


如果不使用$promise,它将正常工作。

我想知道为什么在这里使用$ promise不起作用。如果不清楚,请发表评论。

最佳答案

删除它时,它可以正常工作,因为在您的registerService.js中,您已经返回了promise:

AllUser: function(){
        return $http.get('api/allUser');
    }


返回$ http请求时会发生什么。因此,当您告诉它以解决方案将其返回时,您只需要:

resolve:{
        registerService: "registerService",
        userList: function(registerService){
            return registerService.AllUser();
        }


否则,最后是。$ promise,则是告诉它获得承诺的承诺。

09-26 10:30