2017-05-31 57 views
0

我正在研究離子3角4的項目。我必須連接到數據庫並執行其他操作... 因此,我有一個頁面(.ts .html .scss。 module.ts),我使用sql的提供者。所以我的問題是這樣的,我有這樣的錯誤:SQLiteObject插入提供程序離子3

core.es5.js:1084
錯誤錯誤:未捕獲的(在承諾):錯誤:沒有提供程序SQLiteObject!
錯誤:沒有SQLiteObject的提供者!

所以在module.ts我添加在提供者標誌我把SQLiteObject。但現在我得到這個新的錯誤:

compiler.es5.js:1540
未捕獲錯誤:無法解析SQLiteObject的所有參數:(?)。

另外,如果我把SQLite的就是了總是SQLiteObject provider.Anyway我從來沒有使用SQLite只是SQLiteObject

import { SQLiteObject } from '@ionic-native/sqlite'; 

我谷歌和我發現SQLiteObject不是提供商,但只是一個接口。

那麼,任何想法?我可以把代碼,但很長,如果你有一些想法,請評論。

回答

0

你是對的SQLiteObject不是一個提供者,但你試圖導入它作爲一個。它是SQLite提供程序使用的類對象,因此您可以從構造函數中保存該對象,然後從那裏使用它作爲this.db。 FYI:刪除import { SQLiteObject }聲明。

private db: SQLiteObject; 

constructor(private sqlite: SQLite) 
{ 
     this.sqlite.create({ 
      name: 'data.db', 
      location: 'default' 
     }) 
     .then((db: SQLiteObject) => { 
      this.db = db; //set the object to your own var 
      db.executeSql("CREATE TABLE IF NOT EXISTS ...", {}); 
     }); 
} 
1

您需要在您的app.module.ts文件中添加了類提供商:

import { SQLiteObject } from '@ionic-native/sqlite'; 

@NgModule({ 
    declarations: [ 
    MyApp 
    ], 
    imports: [ 
    // 
    ], 
    bootstrap: [IonicApp], 
    entryComponents: [ 
    MyApp 
    ], 
    providers: [{provide: ErrorHandler, useClass: IonicErrorHandler}, SQLiteObject] 
}) 

export class AppModule {}