2
私はテストタブイオン2アプリを使用するsqliteプラグインを使用します。 app.componentsでイオン2のsqliteをアンドロイドで実行:プロパティexecuteSqlを読み取ることができませんundefined
import { SQLite, Device } from 'ionic-native';
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
/*
Generated class for the SqliteHelper provider.
See https://angular.io/docs/ts/latest/guide/dependency-injection.html
for more info on providers and Angular 2 DI.
*/
@Injectable()
export class SqliteHelper {
public db : SQLite;
public log : string = "";
constructor(public http: Http) {
console.log('Hello SqliteHelper Provider');
}
public initDb() {
this.db = new SQLite();
this.log += "openDatabase。。。";
// if (Device.device.platform)
this.db.openDatabase({
name: "data.db",
location: "default"
}).then((data) =>{
this.log += ("open ok " + JSON.stringify(data));
}, (err) => {
this.log += ("open err " + err.message + " " + JSON.stringify(err));
});
}
public executeSql(statement: string, parms:any) {
return this.db.executeSql(statement, parms);
}
}
し、init sqlitehelper::私はprovierとしてSQLiteのラッパー
constructor(platform: Platform, sqliteHelper : SqliteHelper, events: Events) {
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
sqliteHelper.initDb();
events.publish("sqlite:inited", null);
StatusBar.styleDefault();
Splashscreen.hide();
});
}
そして、私はplatform.readyとコンストラクタで最初のタブページからデータをロードし、アンドロイドの意志でそれを実行します原因エラー:未定義のexecuteSqlプロパティを読み取ることができません。
ボタンをクリックしてデータを読み込むと問題ありません。ロードデータを2ページ目のコンストラクタに置いても大丈夫です。誰が助けてくれるのでしょうか?最初のページにコードを入れ、ページをロードするときにデータをロードします。