Вопрос:

Ionic: TypeError: Невозможно прочитать свойство 'ready' из неопределенного

javascript angularjs cordova ionic-framework cordova-plugins

922 просмотра

1 ответ

34 Репутация автора

Я всегда получаю эту ошибку: TypeError: Невозможно прочитать свойство 'ready' из неопределенного

Это мой код:

angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.directives','app.services', 'ngCordova'])
.run(function($ionicPlatform, $cordovaSQLite) {
  $ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);
    }
    if (window.StatusBar) {
      // org.apache.cordova.statusbar required
      StatusBar.styleDefault();
    }
});
});

angular.module('app.services', [])
.service('DatabaseService', [function($cordovaSQLite, $ionicPlatform) {
    var db;

    $ionicPlatform.ready(function () {
    if(window.cordova) {
        db = $cordovaSQLite.openDB("auftragDB");    
    } else {
        db = window.openDatabase("auftragDB", "1.0", "Offline Artikel Datenbank", 10*1024*1024);
    }

    $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS ArtikelTable (ticket_id number(10), kunde char(100))");
     });
}])

Я действительно понятия не имею, почему он не может найти $ ionicPlatform ...

С наилучшими пожеланиями, Пирсон

Автор: Pearson Источник Размещён: 22.08.2016 08:45

Ответы (1)


1 плюс

2356 Репутация автора

Решение

Я думаю, что вы должны объявить свою сервисную функцию следующим образом

angular.module('app.services', [])
.service('DatabaseService', ['$cordovaSQLite', '$ionicPlatform', function($cordovaSQLite, $ionicPlatform) {

 // When you pass second argument of .service() as array, 
 // then the array should list all dependencies followed by function which use them 

}])

ИЛИ ЖЕ

angular.module('app.services', [])
    .service('DatabaseService', function($cordovaSQLite, $ionicPlatform) {

     // or you can use a direct function with all dependencies as its parameter. 
     // But dependencies injection will break if you do code minification

    })

Сервисы могут иметь свои собственные зависимости. Точно так же, как объявление зависимостей в контроллере, вы объявляете зависимости, указывая их в сигнатуре фабричной функции службы.

Источник: https://docs.angularjs.org/guide/services

Подробнее: https://docs.angularjs.org/guide/di

Автор: Priyesh Kumar Размещён: 22.08.2016 09:00
Вопросы из категории :
32x32