2016-07-07 76 views

回答

0

你忘了關鍵字private添加到您的DBService其中隱含增加了它作爲類成員的構造函數,所以你不需要做this.dbservice = dbservice

constructor(private viewCtrl: ViewController, 
      private nav: NavController, 
      private dbservice: DBService) { 
    this.priority = "high"; 
} 

但是,您需要將DBService添加到providers數組中。無論是在你的引導來電:

bootstrap(App, [/* ..., */ DBService]); 

或您的根組件(應用程序?)上:

@Component({ 
    providers: [/* ..., */ DBService], 
    templateUrl: ... 
}) 
export class App { 

在你DBServive移動Storage變出來的構造或角會嘗試與DI解決它:

@Injectable() 
export class DBService { 
    private storage: Storage; 

    constructor() { 
     storage = new Storage(SqlStorage); 
     ... 
+0

我在ionicBootstrap(MyApp,[DBService])上添加過。但是,當我嘗試訪問DBService的saveTasks(item)函數時,它給了我「原始異常:沒有提供商存儲!(DBService - >存儲)」的錯誤。是我在DBService構造函數中做錯了什麼? – Hungez

+0

啊,是的,將它從​​構造函數中拉出來,否則Angular會嘗試用DI解決它。 – rinukkusu

+1

感謝您的時間和善良!我現在開始工作了,非常感謝! – Hungez