Javascript AngularJs服务/提供者获取程序

Javascript AngularJs服务/提供者获取程序,javascript,angularjs,Javascript,Angularjs,我希望有一个资源,每次使用它时,它都会通过从cookie中获取数据并将其作为JSON对象返回来对其进行评估,这样我就可以这样使用它了: var data = $userData 注意:获取参数时将获得更新的数据。 我可以用一个函数来实现这一点,但我只能这样访问它:** $userData.SomeFunc() 我可以使用getter属性来实现这一点,但是我只能这样访问它: $userData.SomeData 这就是我知道我可以用getter属性实现它的原因: proGamersApp.f

我希望有一个资源,每次使用它时,它都会通过从cookie中获取数据并将其作为JSON对象返回来对其进行评估,这样我就可以这样使用它了

var data = $userData
注意:获取参数时将获得更新的数据。

我可以用一个函数来实现这一点,但我只能这样访问它:**

$userData.SomeFunc()
我可以使用getter属性来实现这一点,但是我只能这样访问它:

$userData.SomeData
这就是我知道我可以用getter属性实现它的原因:

proGamersApp.factory('$userData', ['cookiesStorage', function (cookiesStorage) {

    var userData = {
        get SomeData() {
            return cookiesStorage.getCookie();
        }  
    };

    return userData;
}]);

有人知道我怎样才能做到吗?我曾尝试过通过工厂或服务进行评估,但没有成功,因为它只在第一次调用时进行评估。

不要在您自己的变量中使用
$
$
是为了标记AngularJS自己的私人物品

关于如何创建可通过其属性名访问的服务,您可以尝试以下方法:

proGamersApp.factory('userData',['CookieStorage',函数(CookieStorage){
var userData={}
//此函数立即执行自身并
//计算要返回的值
//一旦加载
userData.someProperty=(函数(){
//在这里做事
var val=1
返回值
})()
userData.SimpleProperty=3
返回用户数据
}]);
现在,当您在其他地方请求此服务时,您可以访问其属性,如下所示:

userData.someProperty//将返回1


userData.simpleProperty//将返回3

不要在您自己的变量中使用
$
$
是为了标记AngularJS自己的私人物品

关于如何创建可通过其属性名访问的服务,您可以尝试以下方法:

proGamersApp.factory('userData',['CookieStorage',函数(CookieStorage){
var userData={}
//此函数立即执行自身并
//计算要返回的值
//一旦加载
userData.someProperty=(函数(){
//在这里做事
var val=1
返回值
})()
userData.SimpleProperty=3
返回用户数据
}]);
现在,当您在其他地方请求此服务时,您可以访问其属性,如下所示:

userData.someProperty//将返回1


userData.simpleProperty//will return 3

看看我的上一个示例,我想在每次直接调用$userData而不使用属性时检索所有更新的数据(存储在cookie上),因此我在应用程序中的任何地方都可以这样检索:var data=$cache。看看我的上一个示例,我想每次直接调用$userData而不使用属性时检索所有更新的数据(存储在cookie上),因此我在应用程序中的任何地方都可以这样检索:var data=$cache。