2016-10-03 41 views
0

我有一個Ionic項目,我需要在主頁上呈現數據庫的一些信息,比如TODO程序。離子和SQLite等到數據庫信息加載

我已經在數據庫上的一些信息,我想呈現的項目清單,但我有一個問題:

  • 第一家庭頁面加載,沒有任何結果
  • 然後從數據庫中的數據被加載並顯示在屏幕

的問題是我想要的看法等到數據庫信息被加載,直到顯示任何有關,我想知道如果我可以使用某種類型的加載圖標的。

我已經按照這裏的答案:Open database before main controller is called in Ionic and SQlite

我有數據庫初始化工作,但正如我已經說過,視圖渲染後數據被加載。

我一直在使用$ionicLoading嘗試,但我沒有得到任何好的結果

這是我的看法:

.controller('homeCtrl', function ($scope, $state, $cordovaSQLite, DB) { 
    $scope.$on('$ionicView.enter', function() { 
     tasks = [] 
     var query = "SELECT * FROM task;"; 

     $cordovaSQLite.execute(DB.db, query, []).then(function(results) { 
      if(results.rows.length > 0) { 
       for (i=0; i<results.rows.length; i++){ 
        console.log("SELECTED -> " + results.rows.item(0).title);  
        $scope.tasks.push(results.rows.item(i)) 
       }      
      } else {      
       console.log("No results found"); 
      } 
     }, function (err) { 
      $scope.tasks = []; 
      console.error(err); 
     }); 
     $scope.tasks = tasks; 
    }); 

}) 

這是我在現在這個問題的視頻例如:

https://youtu.be/H2fUYQuV3xg

+0

有你:在這個例子中,我進入使用DB.getTasks()

要加載可變任務解決途徑我要補充上這樣的功能變量名稱對應的URL之前加載任務嘗試解決路線? –

+0

你是什麼意思? – AlvaroAV

+0

也許你可以在你的路由中使用解析,調用一個服務,你可以從數據庫中獲取數據..因爲它會在進入視圖之前先執行..也許它會解決問題(Y)只是一個猜測。沒有嘗試自己 –

回答

0

最後我發現下面的在我的路線使用的決心的建議的解決方案。

.state('home', { 
    url: '/', 
    templateUrl: 'templates/home.html', 
    controller: 'homeCtrl', 
    resolve: { 
     tasks: function(DB) { 
       return DB.getTasks(); 
        }); 
     } 
    } 
}) 

我有一個叫DB的工廠,我有一些函數可以從數據庫中檢索數據。

app.controller('homeCtrl', function (tasks) { 

    $scope.tasks = tasks; 
}) 
相關問題