2016-07-07 1 views
0

Service fileОтказ построить экземпляр импортных услуг в ионном 2

Calling service

создать службу и хотите использовать его в ионной модальным. Когда я хочу построить, например, сервис, он показал выделенную ошибку во втором изображении. Кто-нибудь, пожалуйста, нарежьте мне какой-то свет, спасибо!

ответ

0

Вы забыли добавить ключевое слово private в свой конструктор, который неявно добавляет его в качестве члена класса, поэтому вам не нужно делать this.dbservice = dbservice.

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

Нужно добавить, что DBService в массив поставщиков. Либо в вашем бутстраповской вызова:

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

или на корневой компонент (App?):

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

В вас DBServive переместить переменную Storage из конструктора или Угловая попытается разрешить его с DI :

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

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

Я добавил к ионическому ботстрапу (MyApp, [DBService]). Однако, когда я пытаюсь получить доступ к функции saveTasks (item) из DBService, это дает мне ошибку «ОРИГИНАЛЬНОЕ ИСКЛЮЧЕНИЕ: Нет провайдера для хранения!» (DBService -> Storage) ». Я что-то не так делаю в конструкторе DBService? – Hungez

+0

Ах да, вытащите его из конструктора, или Angular попытается разрешить его с помощью DI. – rinukkusu

+1

Спасибо за ваше время и доброту! Я получил его сейчас, спасибо большое! – Hungez