我正在尝试创建一个数据库工厂,在数据成功发布后将数据从数据库返回到客户端,但由于某种原因它返回为“未定义”。
我的工厂函数如下所示:
uno.factory('adbFactory', ['$http', function($http){
var fact = {};
fact.get = function(http, query, isAll) {
//var query = "get all blog_posts";
http.post('php/adb/adb.php', {'query': query, 'all': isAll})
.success(function(data){
//console.log(data);
return data;
})
.error(function(){
console.log('Error...');
});
};
return fact;
}]);
我的 Controller 类似于这样:
uno.controller('newsCtrl', function($scope, $http, adbFactory){
$scope.derp = 'derp!!!!!';
console.log(adbFactory.get($http, 'get users 1', false));
});
不用担心“get users 1 etc等”字符串,我在 php 中创建了一个函数,它根据给定的参数呈现 SQL 查询。我的工厂代码中有什么需要改进的吗?
最佳答案
我建议从工厂返回 promise 并在 Controller 中处理成功和错误事件。
fact.get = function(http, query, isAll) {
return http.post('php/adb/adb.php', {'query': query, 'all': isAll});
};
uno.controller('newsCtrl', function($scope, $http, adbFactory){
adbFactory.get($http, 'get users 1', false).success(function(data) {
console.log(data);
});
});
关于javascript - angularjs - 从工厂返回数据时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32260421/