我正在使用cordova和AngularJs构建混合移动应用程序。我已经设置了一个WebSQL来在我的应用程序本地存储数据。我试图将我的WebSQL查询抽象为Angular服务。但是,每当我从控制器调用服务中的方法时,都不会返回任何内容。当我对控制台进行控制台登录时,结果变量会清楚地返回数据库中的数据。但是它似乎并没有将数据返回给我的控制器。我知道如果你使用普通的vanilla JS或其他带有angular的框架,那么代码需要包含在$ digest / $ apply函数中。由于$ scope变量在Angular Services中不可用,因此我不太确定如何在此实例中应用它。下面是我想要实现的一个例子。
app.service('UserService', function(){
this.getAll = function(){
db.executeSql("SELECT * FROM users", [], function(tx, results){
return results.rows;
});
}
});
app.controller('myCtrl', function($scope, UserService){
$scope.users = UserService.getAll();
});
非常感谢任何帮助。