Javascript 如何从本地存储对象访问特定属性?(角度2/角度2-本地存储)
因此,我将对象存储到本地存储中,如下所示:Javascript 如何从本地存储对象访问特定属性?(角度2/角度2-本地存储),javascript,angular,Javascript,Angular,因此,我将对象存储到本地存储中,如下所示: this.localStorage.set('myObject',{'prop1':“string”,'prop2':“string”}) 然后我试图得到该对象的一个特定属性: this.localStorage.get('myObject').prop1 但是这样做会导致错误属性“prop1”在类型“{}”上不存在 我也尝试过将对象存储在局部变量中,然后尝试访问该属性,但它给出了相同的错误 var myObject=this.localStorage
this.localStorage.set('myObject',{'prop1':“string”,'prop2':“string”})代码>
然后我试图得到该对象的一个特定属性:
this.localStorage.get('myObject').prop1代码>
但是这样做会导致错误属性“prop1”在类型“{}”上不存在
我也尝试过将对象存储在局部变量中,然后尝试访问该属性,但它给出了相同的错误
var myObject=this.localStorage.get('myObject');
var myProperty=myObject.prop1代码>
我做错了什么,以及如何访问数据?我使用的是localStorage.setItem/localStorage.getItem和Angular2,所以这可能不是相同的行为。但是您是否尝试过对对象进行字符串化和解析
就我而言:
localStorage.setItem('myObject', JSON.stringify({'prop1': "string", 'prop2': "string"}));
let temp = JSON.parse(localStorage.getItem('myObject'));
temp.prop1; // gives "string"
在您的情况下,类似于:
localStorage.set('myObject', JSON.stringify({'prop1': "string", 'prop2': "string"}));
let temp = JSON.parse(localStorage.get('myObject'));
temp.prop1;
希望能有帮助 能否提供有关如何配置angular2本地存储的更多详细信息。在分别获取或设置之前,我检查了源代码及其解析和字符串化。我没有对其进行测试,但您应该能够执行以下操作:
import { LocalStorageModule } from 'angular-2-local-storage';
@NgModule({
imports: [
LocalStorageModule.withConfig({
prefix: 'my-app',
storageType: 'localStorage'
})
],
declarations: [
..
],
providers: [
..
],
bootstrap: [AppComponent]
})
export class AppModule {}
然后在您的组件中,您可以按如下方式注入此服务
constructor (
private localStorageService: LocalStorageService
) {
}
ngOnInit() {
this.localStorageService.set(key, value);
console.log(this.localStorageService.get(key));
}
您不必解析或字符串化任何内容。希望这会有所帮助。
再次声明:我还没有测试它。这段代码完全基于angular-2-local-storage文档。您必须将对象保存为字符串
localStorage.setItem('myObjectName', JSON.stringify(this.myObject));
然后获取字符串并将其转换为对象
this.myObject = JSON.parse(localStorage.getItem('myObjectName'));
不幸的是,这不起作用,并给我同样的错误。这正是我配置本地存储的方式。不幸的是,它不起作用这里有一个有效的例子:谢谢你这么做。奇怪的是,它对我不起作用,即使它在那个地方起作用。它的配置方式完全相同。执行this.localStorageService.get('myObject')['prop1']
确实有效。@JunKang如果答案满足你的问题,你能接受吗?我可以将我的plnkr移到我的原始答案,如果你能在plnkr中共享你的代码,我可以帮你看一下。谢谢。不幸的是,这不起作用,给了我同样的错误。该死的,如果你在你的Chrome控制台中写“localStorage”,它看起来是什么?Storage{my-app.myObject:“{”prop1:“string”,“prop2:“string”}”是localStorage。get('myObject')['prop1']工作吗?你能告诉我localStorage.get('myObject')的结果吗?谢谢localStorage.get('myObject')['prop1']
。问题,如果你知道答案。为什么要这样做而不是localStorage.get('myObject').prop1
?