Javascript AngularJS$http服务的问题
下面的代码应该使用Javascript AngularJS$http服务的问题,javascript,php,mysql,angularjs,Javascript,Php,Mysql,Angularjs,下面的代码应该使用$http服务从MySQL数据库中获取数据,但是服务提供的数据不会进入控制器/显示错误:/。如果启动应用程序,我的页面上会显示一个空的或错误的表 我在getUsers()函数中提供了一些示例数据。提供数据的PHP代码正在工作,这是JSONPHP返回的示例 也许你们能帮我解决这个问题 var-app=angular.module('DBapp',[]); app.controller('MainCtrl',函数($scope,$http,DatabaseService){ $s
$http服务
从MySQL数据库中获取数据,但是服务
提供的数据不会进入控制器/显示错误:/。如果启动应用程序,我的页面上会显示一个空的或错误的表
我在getUsers()
函数中提供了一些示例数据。提供数据的PHP
代码正在工作,这是JSON
PHP返回的示例
也许你们能帮我解决这个问题
var-app=angular.module('DBapp',[]);
app.controller('MainCtrl',函数($scope,$http,DatabaseService){
$scope.userData=DatabaseService.getUsers();
});
app.factory('DatabaseService',函数($http){
var srv={};
//服务实现
srv.getUsers=函数(){
return[{“user_id”:“1”,“firstname”:“Barrack”,“lastname”:“Obama”,“email”:obama@web.de},{“用户名”:“2”,“名”:“汤姆”,“姓”:“汉克斯”,“电子邮件”:tommy@web.de},{“用户名”:“6”,“名字”:“Felix”,“姓氏”:“Blume”,“电子邮件”:“Felix”。b@selfmade.de"}];
};
//我在getUsers函数中提供了一些虚拟数据,作为DB的示例输出
//公共API
返回{
getUsers:function(){
返回srv.getUsers();
}
};
});代码>
分贝试验
概述数据库
如果您只是从服务中返回数组(如
return {
getUsers: function() {
return srv.getUsers;
}
};
您使用的函数调用是不可能的
好,下面是第2部分:
我没有机会测试它,但它应该能工作
app.factory('DatabaseService', function($http) {
var srv = {};
//Service Implementation
$http.post("php/getData.php").success(function(data) {
srv.users = data;
});
//Public API
return {
getUsers: function() {
return srv.users;
}
};
});
Jorg是对的,第二部分是仓促的反应,对不起。要返回promise是一个可能的解决方案,请返回$http.post(“php/getDat.php”),然后在控制器中添加success函数
DatabaseService.getUsers().success(函数(数据){
$scope.userData=数据;
});代码>我看不到您在哪里使用$http服务getUsers
也不是函数,您将其声明为array@Jorg把它修好了。正如您在第一个代码段中所看到的,它可以处理虚拟数据,但不能处理实际请求。文档相当清晰。到目前为止,您尝试了什么?有几种方法和变量用于在控制器作用域值中传递从服务返回的数据。但是workedIt对数组不起作用,但是我需要使用$http请求从数据库获取数据。我猜第二个代码片段中的functin是错误的。如何使用$http调用的success函数将返回的数据传递给某个对象,就像直接使用数组一样。您的服务应该返回这个对象。您的函数srv.getUsers调用$http调用并注册成功回调,但不返回任何内容。您可以提供一些示例代码以便更好地理解吗?这行不通。使用“getUsers”时,请求尚未完成。你应该归还承诺或注入callback@jorg是的,它不起作用。但我会把重点放在你的想法上。