gpt4 book ai didi

angular - TypeError : this. sqlites.executeSql 不是函数

转载 作者:行者123 更新时间:2023-12-03 18:44:30 26 4
gpt4 key购买 nike

嗨,我们正在混合移动应用程序上创建。我们正在尝试将数据保存到 SQLite使用 Ionic3 和 Angular4。所以我们将插件添加到我们的项目中,然后我们尝试这样:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite';
import { Platform } from 'ionic-angular';

@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
sqlites:any = null;
constructor(public navCtrl: NavController,public plt: Platform) {
this.sqlites = new SQLite();

this.plt.ready().then((readySource) => {
this.sqlites.create({
name: 'userInfo.db',
location: 'default'
})
.then((db: SQLiteObject) => {
db.executeSql('CREATE TABLE IF NOT EXISTS usernameList(id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,age NUMBER,address TEXT,education TEXT)', {})
.then(() => alert('Executed SQL'))
.catch(e => console.log(e));
})
.catch(e => console.log(e));
});

}


user = {};

save(user){
this.sqlites.executeSql('INSERT INTO usernameList(name,age,address,education) VALUES(?,?,?,?)', [user.username,user.age,user.address,user.education])
.then(()=>alert("insertFine"))
.catch(e => console.log(e));
}

}

在上面的代码中,我们在 constructor 中创建表它工作正常,然后我们尝试使用保存按钮操作将数据插入表中。但是我们收到错误 ERROR
TypeError: this.sqlites.executeSql is not a function. (In 'this.sqlites.executeSql', 'this.sqlites.executeSql' is undefined) — main.js:183

请指导我们。我们错过了什么?

最佳答案

因为this.sqlitesSQLite 类型.没有方法executeSql .一个 SQLiteObject另一方面确实如此。

你应该注入(inject) SQLite在构造函数中:

export class HomePage {
// If you inject SQLite in the constructor you dont have to declare sqlites
// here
// sqlites:any = null;

constructor(private sqlites: SQLite) {
...

您可以存储 SQLiteObject从这里返回:
this.sqlites.create({
name: 'userInfo.db',
location: 'default'
})
.then((db: SQLiteObject) => {
this.db = db;
...
}

然后你可以在类里面的任何地方使用它,比如 save() -功能:
save(user){
this.db.executeSql('INSERT INTO usernameList(name,age,address,education) VALUES(?,?,?,?)', [user.username,user.age,user.address,user.education])
.then(()=>alert("insertFine"))
.catch(e => console.log(e));
}

关于angular - TypeError : this. sqlites.executeSql 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45297607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com