2016-07-15 10 views
0

こんにちは、ストレージ用にsqliteを使用してモバイルアプリケーションを作成しようとしています。私はsqlite dbのサービスを作成し、データベースからコントローラのスコープにデータを取得しようとしていますが、コールバックを試みましたが動作しません。助けてください。ハイブリッドモバイルアプリケーションの角度範囲でsqliteデータを取得する

これはsqliteのサービスのコード

self.getAll = function(table_name, cb) { 

    this.db.transaction(function(transaction) { 
     transaction.executeSql("SELECT * FROM " + table_name, [], 
      function(tx, result) { 


       cb(result.rows); 
      }, 
      function(error) { 
       console.log("Error occurred while getting the data."); 
       console.log(error); 
      }); 
    }); 
} 

これは

function getData(data) { 
console.log("logging from getData"); 
console.log(data); 

$scope.all = data; 

} 

sqlite.getAll("todo", getData); 


console.log('logging results outside'); 
console.log($scope.all); 

結果は、私は何をすることができ、$のscope.all変数に代入されませんメインコントローラ内のコードです結果を取得するには、getData関数内からコンソールログが機能し、テーブルデータが表示されます。

+0

私はサーバーを使用せずにスタンドアロンのモバイルアプリを構築しようとしています。データ保存のために電話機のsqliteストレージを使用したい – Bmax

+0

コメントを残して申し訳ありません、私はそれを削除します – fodma1

+0

@ fodma1彼はsqlliteを使用している場合、フロントエンドで実行するように指示されています。 Bmax、plunkr – johan

答えて

0

最後のconsole.log($ scope.all)は、データが到着する前に実行されるため、常に未定義です。むしろ、すべての変数を{{all}}のようにHTMLに表示してください。 変数に$ watchを使用するか、データが到着した後に関数内で代入を行います。あなたがしたいことに依存します。

関連する問題