我对角状态承诺的误解是什么?

时间:2015-09-24 12:06:47

标签: javascript angularjs angular-promise

这是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不起作用。如果不清楚请发表评论。

1 个答案:

答案 0 :(得分:2)

删除它时它会正常工作,因为在registerService.js中你已经返回了一个promise:

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

当您返回$ http请求时会发生什么。因此,当您告诉它以您的决心返回时,您只需要:

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

否则最后使用。$ promise,告诉它承诺承诺。