На данный момент я создал таблицу записей базы данных. Я хочу, чтобы пользователь мог обновить таблицу, нажав F5, но не перезагрузите всю страницу.
Я использую маршрутизатор, чтобы загрузить стол в мой index.html
. Затем я использую эту директиву, чтобы поймать ключ F5 и предотвратить по умолчанию.
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
функции в контроллере. Функция контроллера вызывает метод моего 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
. В любом другом созвездии соединение с базой данных работает отлично.
EDIT:
Это, как я включаю в controlller database_factory
:
app.controller("MainCtrl",function($scope,$http,database_factory){
и это, как я это называю:
var response=database_factory.execute(transport_data,"json.test.php");
И как контроллер вызывает «database_factory»? – Gustav
Возможно, добавьте его в вопрос и отформатируйте его? Это не выглядит правильно. – Gustav
И этот вызов выполняется прямо в функции контроллера? а не в 'scope.test()' -функции или что-то еще? – Gustav