Ionic2 cordova sqlite存储:如何将sqlite用作服务
我正在尝试将爱奥尼亚2中的Cordova插件sqlite用作一项服务 项目已生成,但运行的是空白页 以下是我在android logcat中看到的与此相关的内容:Ionic2 cordova sqlite存储:如何将sqlite用作服务,sqlite,angular,cordova-plugins,ionic2,Sqlite,Angular,Cordova Plugins,Ionic2,我正在尝试将爱奥尼亚2中的Cordova插件sqlite用作一项服务 项目已生成,但运行的是空白页 以下是我在android logcat中看到的与此相关的内容: 10-29 02:15:11.082 8010-8010/? I/chromium: [INFO:CONSOLE(5)] "EXCEPTION: No provider for t!", source: file:///android_asset/www/build/main.js (5) 10-29 02:15:11.082 801
10-29 02:15:11.082 8010-8010/? I/chromium: [INFO:CONSOLE(5)] "EXCEPTION: No provider for t!", source: file:///android_asset/www/build/main.js (5)
10-29 02:15:11.082 8010-8010/? I/chromium: [INFO:CONSOLE(5)] "ORIGINAL STACKTRACE:", source: file:///android_asset/www/build/main.js (5)
10-29 02:15:11.082 8010-8010/? I/chromium: [INFO:CONSOLE(5)] "Error: DI Error
at e.Error (<anonymous>)
at e (file:///android_asset/www/build/main.js:5:5322)
at e (file:///android_asset/www/build/main.js:5:10802)
at new e (file:///android_asset/www/build/main.js:5:11130)
at t._throwOrNull (file:///android_asset/www/build/main.js:5:28341)
at t._getByKeyDefault (file:///android_asset/www/build/main.js:5:28697)
at t._getByKey (file:///android_asset/www/build/main.js:5:28252)
at t.get (file:///android_asset/www/build/main.js:5:24608)
at e.get (file:///android_asset/www/build/main.js:7:16300)
at e.get (file:///android_asset/www/build/main.js:8:3564)", source: file:///android_asset/www/build/main.js (5)
10-29 02:15:11.092 8010-8010/? I/chromium: [INFO:CONSOLE(5)] "EXCEPTION: No provider for t!", source: file:///android_asset/www/build/main.js (5)
10-29 02:15:11.092 8010-8010/? I/chromium: [INFO:CONSOLE(5)] "ORIGINAL STACKTRACE:", source: file:///android_asset/www/build/main.js (5)
10-29 02:15:11.092 8010-8010/? I/chromium: [INFO:CONSOLE(5)] "Error: DI Error
at e.Error (<anonymous>)
at e (file:///android_asset/www/build/main.js:5:5322)
at e (file:///android_asset/www/build/main.js:5:10802)
at new e (file:///android_asset/www/build/main.js:5:11130)
at t._throwOrNull (file:///android_asset/www/build/main.js:5:28341)
at t._getByKeyDefault (file:///android_asset/www/build/main.js:5:28697)
at t._getByKey (file:///android_asset/www/build/main.js:5:28252)
at t.get (file:///android_asset/www/build/main.js:5:24608)
at e.get (file:///android_asset/www/build/main.js:7:16300)
at e.get (file:///android_asset/www/build/main.js:8:3564)", source: file:///android_asset/www/build/main.js (5)
10-29 02:15:11.102 8010-8010/? I/chromium: [INFO:CONSOLE(3)] "Error: No provider for t!", source: file:///android_asset/www/build/polyfills.js (3)
“[我的项目]\src\app\app.module.ts”:
最后是“[我的项目]\src\app\app.component.ts”:
从'@angular/core'导入{Component};
从“离子角度”导入{Platform};
从“离子本机”导入{StatusBar,Splashscreen};
从“../pages/home/home”导入{HomePage};
从“../services/sql settings/sql settings”导入{SqlSettingsService};
@组成部分({
模板:``,
提供者:[SqlSettingsService]
})
导出类MyApp{
rootPage=主页;
构造函数(平台:平台,sqlSettingsService:sqlSettingsService){
platform.ready()。然后(()=>{
//好了,平台准备好了,我们的插件也可以使用了。
//在这里,您可以做任何您可能需要的更高级别的本地操作。
StatusBar.styleDefault();
Splashscreen.hide();
sqlSettingsService.openDb()。然后(
()=>{alert(“OPEN DB成功”)},
(err)=>{alert('无法打开数据库:'+err)}
);
});
}
}
你为什么要这样做
constructor(public db: SQLite) {
this.db = new SQLite();
}
这是毫无意义的。1.没有提供程序,因此无法注入。2.即使它被注射了,你也给它分配了新的东西。无意义的你可能想做的是
db: SQLite;
constructor() {
this.bd = new SQLite();
}
这是没有必要的
public db: SQLite
) {
this.db = new SQLite();
}
只需在app.module.ts文件中使用此文件即可
import { SqlSettingsService } from '../services/sql-settings/sql-settings';
并且在提供程序中使用SqlSettingsService靶心!谢谢
db: SQLite;
constructor() {
this.bd = new SQLite();
}
public db: SQLite
) {
this.db = new SQLite();
}
import { SqlSettingsService } from '../services/sql-settings/sql-settings';