在我的 angular js + cordova + ionic app 中,我想在应用程序启动时设置数据库对象。我在 app.js 文件中初始化它。
.run(function ($ionicPlatform, DBService, $cordovaSQLite) {
$ionicPlatform.ready(function () {
var db = $cordovaSQLite.openDB("CO.db");
DBService.setDB(db);
...}
我将使用此函数 DBService.getDB(); 在其他文件上检索 db object 。
问题是.controller $urlRouterProvider.otherwise('/app/contact');
函数首先加载cotact-ctrl.js文件但不加载 db对象。在完成cotact-ctrl.js文件的加载后,它会在app.js文件中执行.run方法,这就是为什么它没有得到 db对象
实际上我是角度js的新手,我不知道角度js app的生命周期。
答案 0 :(得分:0)
您正在将db对象创建为就绪事件范围的本地对象。这就是为什么它不会在那个处理程序之外可用。
您需要在全局范围内移动数据库。这样您就可以在应用程序的任何位置访问它。
.run(function ($ionicPlatform, DBService, $cordovaSQLite) {
$ionicPlatform.ready(function () {
window.db = $cordovaSQLite.openDB("CO.db");
DBService.setDB(db);
...}