javascript - angularjs - 从工厂返回数据时遇到问题

标签 javascript angularjs

我正在尝试创建一个数据库工厂,在数据成功发布后将数据从数据库返回到客户端,但由于某种原因它返回为“未定义”。

我的工厂函数如下所示:

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/

相关文章:

javascript - Python 到 Javascript - Numpy 问题

Javascript 购买 SDK - 错误 : Not Found

javascript - form.serializeArray() 的自定义键

angularjs - Protractor "Can' t 读取未定义的属性 'click'”

javascript - 将单个项目置于列表顶部

javascript - 登录成功后获取cookie?

javascript - 聚合物 dom 模块什么都不显示

javascript - 使用主页按钮时 iOS 上的页面可见性 API 事件

javascript - Angular : how to loop through JSON in controller and display in view

AngularJS:如何验证 ng-repeat 表单字段