没有使用http和&amp ;;中的http解析工厂服务调用控制器之前的ui-router

时间:2014-06-21 22:58:36

标签: angularjs angular-ui-router

我使用的是Angular.js,ui-router,UserService Factory和控制器。

我遇到的问题是当我的resolv在路由中返回时,在激活控制器时它没有完全解析。

这是我的UserService:

app.factory('UserService',["$rootScope","$q","$http","$window",function($rootScope,$q,$http,$window) {
    var accountinfo;
    return {
        getCurrentAccount: function() {
            $http.get("/api/v1/accounts").then(function(data){
                accountinfo=data;
                return data;
            })
    }

这是我路线中的州:

.state("in",{
    url:"/in",
    templateUrl: "/templates/in.html",
    authenticate: true,
    controller: "inController",
    resolve: {
        servicename: 'UserService',
        accountinfo: function(servicename) {
            return servicename.getCurrentAccount();
        }
    }
})

这一个星期。我做了很多阅读和研究。我一直无法解决这个问题。没有双关语!

1 个答案:

答案 0 :(得分:2)

您需要向路径的resolve函数返回一个承诺,以等待承诺得到解决。您的getCurrentAccount()应该返回$http请求的结果:

getCurrentAccount: function() {
    return $http.get("/api/v1/accounts").then(function(result){
        accountinfo = result.data;
        return result.data;
    });
}