首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJs服务/提供者Getter

AngularJs服务/提供者Getter
EN

Stack Overflow用户
提问于 2013-09-28 14:55:56
回答 1查看 242关注 0票数 0

我希望有一个资源,每当它被使用时,它通过从cookie中获取数据并将其作为JSON对象返回来评估它,因此我可以这样使用它--

代码语言:javascript
复制
var data = $userData

注意:当获取参数时,将得到更新的数据.

我可以用一个函数来完成这个任务,但是我只能像这样访问它:**

代码语言:javascript
复制
$userData.SomeFunc()

我可以使用getter属性来实现这一点,但是我只能像这样访问它:

代码语言:javascript
复制
$userData.SomeData

我知道如何使用getter属性实现它:

代码语言:javascript
复制
proGamersApp.factory('$userData', ['cookiesStorage', function (cookiesStorage) {

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

    return userData;
}]);

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

EN

回答 1

Stack Overflow用户

发布于 2013-09-28 17:04:11

不要在自己的变量中使用$$是为了标记AngularJS自己的私事。

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

代码语言:javascript
复制
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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19068243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档