Ionic2 cordova sqlite存储:如何将sqlite用作服务

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

我正在尝试将爱奥尼亚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 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';