我希望有一个资源,每当它被使用时,它通过从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;
}]);有人知道我怎么做到的吗?我试过通过工厂或服务来做,但没有成功,因为它只是在第一次调用时才进行评估。
发布于 2013-09-28 17:04:11
不要在自己的变量中使用$。$是为了标记AngularJS自己的私事。
至于如何创建通过其属性名可访问的服务,您可以尝试如下:
proGamersApp.factory('userData', ['cookiesStorage', function(cookiesStorage) {
var userData = {}
// this function immediately executes itself and
// calculates the value that you wanna return
// once it is loaded
userData.someProperty = (function() {
// do stuff here
var val = 1
return val
})()
userData.simplerProperty = 3
return userData
}]);现在,当您在其他地方请求此服务时,您将能够访问它的属性如下:
userData.someProperty // will return 1
userData.simplerProperty // will return 3
https://stackoverflow.com/questions/19068243
复制相似问题