1

オブジェクトをローカルに設定しようとしていますが、その localstorage を console.log に記録しますが、未定義になっています。

ここに私の機能があります

            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配列があります。

私の console.log(item) で、オブジェクトを見ることができます。

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

私の console.log(this.quciOrder); 無防備を示します。

4

2 に答える 2

0

LocalStoragefromを使用していIonicますか? そうでない場合は、それを使用した方が作業が簡単になるため、使用した方が良いと思います(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);

  });
}
于 2016-09-07T09:41:36.467 に答える
0

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

于 2016-09-07T11:07:22.973 に答える