AngularJS服务依赖于第二个服务的资源

AngularJS service depending on resource from 2nd service

本文关键字:服务 资源 依赖于 AngularJS 第二个      更新时间:2023-09-26

也许我用错了方式,我不确定,但我有两个服务,一个是用户服务,它从服务器获取用户的一些详细信息,另一个依赖于用户服务的一些用户详细信息,然后对服务器进行更多调用以获取其他信息。

无论如何,由于异步的东西在第二个服务进行调用时,从用户服务器需要的信息还没有被填充。

我知道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
    }
}])

所以我有一个用户服务和一个缓存userdata服务,但如果我曾经尝试调用任何从userdata在PlansData服务我得到未定义。

我如何得到plansData等待UserData有一些数据?

感谢汤姆

我不知道您想要完成什么,但是这行代码:

if(data = {}){
}

在你的两个服务中都在清除你的数据对象。将整个数据对象设置为{}