AngularJS服务取决于来自第二服务的资源

时间:2013-05-20 12:10:23

标签: javascript angularjs

也许我正在以错误的方式解决这个问题,我不确定,但我有2个服务,一个是用户服务,从服务器获取有关用户的大量详细信息,另一个是依赖来自用户服务的一些用户详细信息,然后再向服务器调用以获取其他信息。

无论如何,由于第二个服务进行调用时发生的异步内容,尚未填充用户服务器所需的信息。

我知道Angular服务可以相互依赖,但在这种情况下它不会出现吗?

factory('User', ['$resource', function ($resource) {
    return $resource(usersUrl, {}, {
        //The data model is loaded via a GET request to the app
        query: {method: 'GET', params: {}, isArray: false},
        putupdate: {method: 'PUT', params:{}}

    });
}])
.factory('UserData', function() {
    var data = {}
    data.userinfo = {};

    if(data = {}){
    }
    return {
        updateinfo: function(newdata) {

            data.userinfo = newdata;
          //  alert(data.userinfo.user)

        },
        userinfo: data
    }
})
.factory('PlansData', ['UserData', 'User', '$rootScope', function(userData, user, $rootScope) {
    var data = {}
    data.plansinfo = {};
    //alert(userData.data.userinfo.user.email)
    if(data = {}){
    }
    return {
        updateinfo: function(newdata) {
            alert(user.query())

            data.plansinfo = newdata;
        },
        plansinfo: data
    }
}])

所以我有一个用户服务和一个缓存用户数据服务,但如果我尝试从PlansData服务中的UserData调用任何东西,我会得到未定义的。

如何让plansData等待UserData拥有一些数据?

由于

汤姆

1 个答案:

答案 0 :(得分:0)

我不确定你要完成什么,但是这行代码:

if(data = {}){
}

在您的两个服务中都在消灭您的数据对象。您将整个数据对象设置为{}