目前我创建了一个数据库条目表。我希望用户能够通过按 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");
答案 0 :(得分:1)
将database_factory更改为database_serive解决了这个问题。