Итак, я создал фабрику для запроса данных db и возврата. Внутри метода я могу печатать на консоли. Но когда я проверяю возвращаемые данные внутри контроллера, он пуст, посмотрите код ниже и посмотрите, сможете ли вы помочь.Ионный не возвращает данные sql от фабрики к контроллеру
Вот заводу
rs.factory("userService",function($http,$ionicLoading,$cordovaProgress,$cordovaSQLite,$q){
var user = {};
/**get user data */
user.getData = function(){
//stores from the local database
var userData = [];
var query = "SELECT * FROM users";
$cordovaSQLite.execute(db, query, []).then(function(res) {
for (var i=0; i < res.rows.length; i++){
userData.push(res.rows.item(i));
}
console.log("User Data : " + JSON.stringify(userData));//this works
}, function (err) {
console.error(err);
})
return userData;
};
return user;
});
Контроллер:
angular.module('starter.controllers', [])
.controller('AppCtrl', function($scope, $ionicModal, $timeout, $http, $state, $cordovaSQLite,$ionicNavBarDelegate,userService) {
console.log(userService.getData()); // is empty
})
Ничто не возвращается сюда.
У меня есть вопрос, связанный. Короткий anwser: все операции с базой данных - асинхронная проверка http://stackoverflow.com/questions/39563879/sqlite-plugin-for-cordova-code-running-backwards – MikeVelazco