我已經建立了一個AngularJS工廠:傳遞對象鍵爲參數檢索參數
angular.module('app.services', [])
.factory('StorageService', function($localStorage) {
$localStorage.$default({
objA : ['foo','bar'],
objB : []
});
var _getByKey = function(storageItem){
return $localStorage.storageItem;
}
return {
get : _getByKey
};
});
在我的控制,我想找回它是這樣:
angular.module('app.controllers', [])
.controller('testCtrl', function($scope, StorageService) {
console.log(StorageService.get(objA));
}
我會有幾個對象存儲在localStorage中,我希望能夠靈活地通過工廠檢索它們,而不是將$ localStorage依賴項與工廠一起注入。
我堅信問題在於工廠的參數傳遞。一些JavaScript破解我的大腦沒有處理。大聲笑。有任何想法嗎?^_^
UPDATE:對不起球員,我完全忘記了錯誤〜基本上,執行該代碼時,我得到「的ReferenceError:objA沒有定義」
嘗試返回{ 得到:_getByKey };它看起來好像你的代碼中有一個類型錯誤 – boroboris
你提到將有幾個對象存儲,我看不到每個對象的名字是可持續的:'StorageService.get(objA)'除非你有辦法保留跟蹤所述對象。在你的工廠設計中也許要記住。 – Jax
@boroboris對不起,確實是was_getByKey,我錯誤地輸入了問題..但這不是修復.. :( – Aftab