簡體   English   中英

AngularJs服務/提供者獲取器

[英]AngularJs Service/Provider Getter

我希望有一個資源,它每次使用時都會通過從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', ['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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM