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