0

“准备好”我总是收到此错误: 类型错误:无法读取属性未定义离子:类型错误:无法读取属性未定义

“准备好”这是我的代码:

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 ...

最好的问候, 皮尔逊

回答

1

我想你应该申报这样

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 

}]) 

OR

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

+0

THX!第二个版本正在工作。 – Pearson

相关问题