Buduję aplikację mobilną za pomocą telefonu i telefonuangular.js. Używam SQLite do zapisywania lokalnych danych. A moim problemem jest to, że nie mogę renderować danych asynchronicznych, które otrzymuję z sqlite. Problem polega na tym, że dane nie są renderowane „Próbowałem nawet metody $ Apply, ale to nie działa.
Oto mój kod poniżej
function ProjectListCtrl($scope) {
$scope.test = function(){
db.transaction(queryDB, errorCB);
var test1 = function(db_result){
// $scope.projects = db_result;
// $scope.$apply();
$scope.projects = db_result;
$scope.$apply(function(){
$scope.projects = db_result;
});
console.log($scope.projects)
}
var make_result = function (tx, results, $scope) {
querySuccess(tx, results, $scope,test1 );
};
function querySuccess(tx, results, $scope, callback) {
var len = results.rows.length;
var db_result = [];
for (var i=0; i<len; i++){
db_result[i] = results.rows.item(i);
}
callback(db_result)
// $scope.projects = results.rows;
// $scope.$apply(); //trigger digest
};
function queryDB(tx) {
tx.executeSql("SELECT * FROM Projects", [], make_result, errorCB);
}
}
}
Odpowiedzi:
0 dla odpowiedzi № 1Chyba musisz skorzystać z usługi $ q
http://docs.angularjs.org/api/ng.$q