У меня есть заводская служба и здесь метод getCount. Когда я вызываю этот метод в своем контроллере, он возвращает null, но я протестировал его на своей фабричной службе, распечатав данные в консоли. Он показывает данные в консоли, но не возвращает никакого значения моему контроллеру.
obj.getCount = function(table, field) {
var query = "select count(" + field + ") as total from " + table + "";
$db.query(query).then(function(results) {
console.log(results.rows.item(0).total); // here show data in console
if (results.rows.item(0).total) {
return results.rows.item(0).total;
} else {
return 0;
}
});
}
В моем контроллере
$scope.totalAccount=DBFactory.getCount('accounts','id');
Верните $db.query.then
так:
obj.getCount = function(table, field) {
var query = "select count(" + field + ") as total from " + table + "";
return $db.query(query).then(function(results) {
if (results.rows.item(0).total) {
return results.rows.item(0).total;
} else {
return 0;
}
});
}
Затем измените код контроллера на:
DBFactory.getCount('accounts','id').then(function(data) {
$scope.totalAccount = data;
});