localStorage.setItem(key,val)显示undefiend

时间:2016-09-07 09:03:43

标签: angular ionic2 angular-local-storage

我正在尝试在本地设置我的对象,我在console.log那个localstorage但是我得到了未定义。

这是我的功能

            searchBar(item) { //item is object here as parameter

             console.log(item);
        localStorage.setItem('object',JSON.stringify(item))
this.quickOrder.push(localStorage.getItem('object'));

    console.log(this.quickOrder);

                  }

我将一个quickOrder数组声明为globaly。

在我的console.log(item)中,我能够看到我的对象。

我正在尝试将具有本地存储的对象推送到我的空数组,以便我可以使用ngFor在UI中显示。

  

我的console.log(this.quciOrder);显示不受欢迎。

2 个答案:

答案 0 :(得分:0)

您使用的是来自LocalStorage的{​​{1}}吗?如果没有,我认为如果你使用它会更好,因为它会使事情变得更容易(请注意,LocalStorage存储引擎使用浏览器的本地存储系统来存储键/值对,所以它的含义相同存储数据的位置)。就像你在LocalStorage docs中看到的一样,你可以像这样初始化它

Ionic

然后使用import { Component } from '@angular/core'; import { Storage, LocalStorage } from 'ionic-angular'; @Component({ template: `<ion-content></ion-content>` }); export class MyClass{ constructor(){ this.local = new Storage(LocalStorage); } } get(key)方法,但要记住两种方法都会返回承诺,所以你应该这样做

set(key, value)

答案 1 :(得分:0)

在推入数组之前,您需要JSON.parse localStorage数据。 localStorage.setItem('object',JSON.stringify(item)); this.quickOrder.push(JSON.parse(localStorage.getItem('object')));