Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从本地存储对象访问特定属性?(角度2/角度2-本地存储)_Javascript_Angular - Fatal编程技术网

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