2015-02-09 28 views
0

在我的角js +科爾多瓦+離子應用,我想設置我的數據庫對象在應用程序啓動時。我初始化它在app.js文件。如何在申請時設置對象值是午餐?

.run(function ($ionicPlatform, DBService, $cordovaSQLite) { $ionicPlatform.ready(function() { var db = $cordovaSQLite.openDB("CO.db"); DBService.setDB(db); ...}

,我要使用此功能DBService.getDB()以檢索該db對象上anothe文件;

問題是在.controller中$urlRouterProvider.otherwise('/app/contact');函數首先加載cotact-ctrl.js文件,但不是不加載db對象。和cotact-ctrl.js的加載完成後文件,它在app.js文件多數民衆贊成執行。運行方法,爲什麼它沒有得到db對象

其實我在角JS新的,我不知道角度js應用程序的生命週期。

回答

0

您正在將db對象創建爲就緒事件作用域的本地對象。這就是爲什麼它不能在該處理程序之外提供。

您需要在全局範圍移動db。這樣你可以在應用程序的任何地方訪問它。

.run(function ($ionicPlatform, DBService, $cordovaSQLite) { 
     $ionicPlatform.ready(function() { 
      window.db = $cordovaSQLite.openDB("CO.db"); 
      DBService.setDB(db); 
...} 
+0

但我使用getter和setter方法。也是當我的頁面是聯繫頁面啓動它仍然沒有得到數據庫對象值 – RahulSalvikar 2015-02-09 06:48:05

+0

你什麼時候啓動你的應用程序?理想情況下,您應該在您的案例$ ionicPlatform.ready中啓動您在cordova的device.ready事件中的應用程序。然後你的運行塊將首先執行任何其他控制器。只有你的代碼存在問題,那就是你在運行塊上附加了一個事件。這就是它在你的控制器之後執行的原因。 – dhavalcengg 2015-02-09 06:59:15