gpt4 book ai didi

javascript - 将对象键作为参数传递以进行参数检索

转载 作者:行者123 更新时间:2023-12-01 03:52:19 25 4
gpt4 key购买 nike

我已经构建了一个 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
};

});

在我的 Controller 中,我尝试这样检索它:

angular.module('app.controllers', [])
.controller('testCtrl', function($scope, StorageService) {
console.log(StorageService.get(objA));
}

我将在 localStorage 中存储多个对象,并且我希望能够通过工厂灵活地检索它们,而不是将 $localStorage 依赖项与工厂一起注入(inject)。

我坚信问题出在工厂的参数传递上。我的大脑没有处理一些 JavaScript hack。哈哈。有任何想法吗? ^_^

更新:对不起,大家,我完全忘记了错误〜基本上,当执行此代码时,我得到“ReferenceError:objA未定义”

最佳答案

你的语法不太正确。您尝试要做的是传递您想要检索的属性名称;您实际上正在做的是传递一个尚未声明的变量。

所以您需要更改的第一部分是:

console.log(StorageService.get('objA'));

传递字符串值,而不是变量。

在您的 .get() 方法中,您尝试根据传入的值检索属性,但您实际上所做的是查找属性 storageItem,它不会存在。如果要使用storageItem的值,则需要使用括号语法。

return $localStorage[storageItem];

Demo

关于javascript - 将对象键作为参数传递以进行参数检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43072817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com