2016-09-07 5 views
1

私はオブジェクトをローカルに設定しようとしていますが、console.logはlocalstorageですが、私は定義されていません。localstorage.setItem(key、val)undefiendを示しています

は、ここで私はquickOrderアレイは、グローバルに宣言している私の機能

  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); 

        } 

です。

私のconsole.log(アイテム)に私のオブジェクトを見ることができます。

ローカルストレージを持つオブジェクトを空の配列にプッシュしようとしているため、ngForを使用してUIに表示できます。

my console.log(this.quciOrder); undefiendを示します。

+0

「quickOrder」がグローバルに宣言されている場合 - あなたが言うように - 何が 'this'の使用法ですか?多分あなたは質問にもっと多くのコードを含めるべきです。 – cartant

+0

クラス内でgloablly宣言されているので、関数内で配列を使用するには、このキーワードを使って関数にアクセスする必要があります –

答えて

0

LocalStorageIonicから使用していますか?そうでない場合は、物事を簡単にするために使用する方が良いと思います(LocalStorageストレージエンジンは、キーと値のペアを格納するためにブラウザのローカルストレージシステムを使用していることに注意してください)。データが格納される)。あなたがLocalStorage docsで見ることができます同じように、あなたはこの

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)メソッドを使用しますが、念頭に置いて、両方の方法は、あなたがやるべき約束を返すことができ

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

    console.log(item); 

    this.local.set('object',JSON.stringify(item)).then(() => { 

    // Code to execute after the value is set in the LocalStorage... 

    }); 

    // Or 

    this.local.get('object').then((data) => { 

    // Code to execute after the value is get from the LocalStorage... 
    this.quickOrder.push(data); 

    }); 
} 
0

配列をプッシュする前に、localStorageデータをJSON.parseする必要があります。 localStorage.setItem('object',JSON.stringify(item)); this.quickOrder.push(JSON.parse(localStorage.getItem('object')));

関連する問題