У меня этот запрос sqlite в приложении angularjs.
$scope.testArr = [];
$scope.testFunk = function(){
var db = window.openDatabase("test", "1.0", "Test DB", 1000000);
db.transaction(function(tx){
tx.executeSql('SELECT * FROM EVENTS',
[],
//Callback function with transaction and
//results objects
function(tx, results){
//Count the results rows
var rowsCount = results.rows.length;
//Loop the rows
for (var i = 0; i < rowsCount; i++){
//Build a results string, notice the
//column names are called
$scope.testArr.push({
id: results.rows.item(i).eventId,
nameSel: results.rows.item(i).eventNameSel,
name: results.rows.item(i).eventName,
eventDesc: results.rows.item(i).eventDesc,
eventUrl: results.rows.item(i).eventUrl,
time: results.rows.item(i).eventTime
})
}
console.log($scope.testArr);
},
errorHandler);
});
}
//
console.log
возвращает правильные объекты, но если я делаю console.log
вне функции db.transaction
она возвращает пустой. Проблема заключается в том, что я хочу, чтобы вызвать функцию $scope.testFunk()
и возвращает результат из запроса в переменную, которую я затем можно обрабатывать дальше, как:
var result = $scope.testFunk();
console.log(result);
// prints results from query.
вы можете настроить http://jsfiddle.net –