ハイブリッドアプリにIonic 2(Angular 2)を使用しています。私はSQLite3データベースからデータを表示し、次にデータをロードするためのページに共有プロバイダを挿入します。しかし、データベースプロバイダを作成するには、データベースを開くには少し時間がかかります(ごくわずかです)。しかし、私のコードは(この瞬間の時点で)クエリを実行する前にデータベースを開くのを待たず、エラーが発生します。Ionic2/Angular2が照会の前にSQLiteデータベースを開くのを待つ
クラッシュを回避するためにデータベースを開くのを待つコードをどのように構造化できますか?
私のデータベースプロバイダのコンストラクタ:このプロバイダーは私のページのコンストラクタに注入します
constructor(private platform: Platform) {
this.platform.ready().then(() => {
if(this.isOpen !== true) {
this.storage = new SQLite();
this.storage.openDatabase({name: "data.db", location: "default"}).then(() => {
this.isOpen = true;
this.storage.executeSql("CREATE TABLE IF NOT EXISTS people (id INTEGER PRIMARY KEY AUTOINCREMENT, firstname TEXT, lastname TEXT)", []);
});
}
});
console.log('Hello Database Provider');
。
ページ(ホームページ)がロードされると、load()
関数を呼び出すイベントがトリガされます。
ionViewDidLoad() {
this.load();
console.log('Hello Home Page');
ロード機能:私は非常に多く、誰かが正しい方向に私を指すことができます:)
ここにすべてのニュースがありますか?私は同じ問題に直面しています。 – dermoritz
@dermoritz私はこの問題を解決し、答えとして私の解決策を追加しました:) – enemypixel