我对 angular state promise resolves 有什么误解?

What am I misunderstanding about angular state promise resolves?

这是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 中您已经 return 做出承诺:

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

当您 return 一个 $http 请求时会发生什么。所以当你告诉它 return 它在你的决心中你只需要:

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

否则在最后加上 .$promise 你就是在告诉它去获取一个 promise 的承诺。