1

IONIC と ANGULAR で作成されたこのアプリで、イオン ローカル ストレージからデータを取得しようとしています。私が省略しているものはまだわかりませんが、プロセスがトリガーされるとデータは公開されません。

この方法ですべての必要なプラグインをインストールした後、イオン ストレージにデータを設定するとします。

DataStorageService

import { Storage } from "@ionic/storage";

allMoviesfavorites: MovieSelectedDetails[] = [];

  saveAtStorage(movieToSave: MovieSelectedDetails) {
     ....asigning some value to variable allMoviesfavorites...

     this.storage.set("favorites", this.allMoviesfavorites);
  }

また、同じサービスで、このように取得するメソッドを確立します

DataStorageService

import { Storage } from "@ionic/storage";

 allMoviesfavorites: MovieSelectedDetails[] = [];

constructor( private storage: Storage ) { this.loadfavoritesinStorage(); }
 
OPTION1
loadfavoritesinStorage() {
    this.storage.get("favorites").then((result) => {
      if (result == null) {
        result = [];
      }
      this.allMoviesfavorites = result;
      
    });

    return this.allMoviesfavorites;
  }

OPTION 2
 async loadfavoritesinStorage() {
    return this.storage.get("favorites").then((result) => {

       if (result == null) {
        result = [];
      }
      this.allMoviesfavorites =  result;
      console.log(result);
      

      return this.allMoviesfavorites;
    });
  }

ご覧のとおり、そこに設定したすべてのデータのローカル ストレージ コンテナーに到達すると、そこに到達すると、得られた結果が何であれ、以前に空の配列として初期化された変数 allMoviesFavorite に割り当てられます。

次に、そのデータを公開したい要素で、サービスを呼び出してタスクを実行する機能を ngOnInit メソッドでトリガーし、サービスから取得したデータを変数 moviesInFavorite に割り当てます。これは HTML でループされ、すべてのデータをグラフィカルに表示します。 . また、チェックするためにデータが持ち込まれたものは何でもログに記録しますが、データを受け取りません

Tab

import { DataStorageService } from "../services/data-storage.service";


moviesInFavorites: MovieSelectedDetails[] = [];
  constructor(private storageservice: DataStorageService) {}

  ngOnInit() {
    this.getFavorites();
  }

  async getFavorites() {
    let moviesInFavorites = await this.storageservice.loadfavoritesinStorage();
    console.log(moviesInFavorites);
    return (this.moviesInFavorites = moviesInFavorites);
  }

ここに画像の説明を入力 ここに画像の説明を入力

どうすれば問題を改善できますか?

4

1 に答える 1