我总是收到此错误: 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 ......
祝你好运, 皮尔逊
答案 0 :(得分: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
})
服务可以拥有自己的依赖项。就像在控制器中声明依赖项一样,您可以通过在服务的工厂函数签名中指定依赖项来声明依赖项。