$ http不会发送请求/没有网络活动

时间:2015-08-21 10:32:58

标签: php angularjs

目前我创建了一个数据库条目表。我希望用户能够通过按 F5 刷新表,但不能重新加载整个页面。

我使用routeprovider将表加载到index.html中。然后我使用这个指令来捕获 F5 keydown并阻止默认值。

app.directive('test', function ($window) {
    return {
        restrict: 'EAC',
        scope:{
            test: "&",
        },
        link: function(scope, element, attr, controller) {
            angular.element($window).on('keydown', function (event){
                if(event.which == 116){
                    scope.test();
                    event.preventDefault();
                }
            });
        }
    }
});

我将此指令分配给了我的表的容器,并用它来调用控制器中的table_reload函数。控制器函数调用my database_factory的方法来执行我的数据库请求。

对于请求,我使用$http对象来执行我的POST请求。

app.factory("database_factory", function($http){
    var run = function(data, url){
        var request = {
            method  : 'POST',
            url     : url,
            headers : {
                'Content-Type': "application/json",
            },
            data    : data
        }
        return $http(request);
    }
    return {
        execute: function(data, url){
            return run(data, url);
        }
    }
});

问题是在这个星座中没有发送请求。控制台上没有网络活动,也没有任何内容。代码完全正常,直到达到$http请求。在其他每个星座中,数据库连接都可以正常工作。

修改

这就是我在控制器中包含database_factory的方式:

app.controller("MainCtrl",function($scope,$http,database_factory){

这就是我所说的:

var response=database_factory.execute(transport_data,"json.test.php");

1 个答案:

答案 0 :(得分:1)

将database_factory更改为database_serive解决了这个问题。