2015-08-21 3 views
1

На данный момент я создал таблицу записей базы данных. Я хочу, чтобы пользователь мог обновить таблицу, нажав 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"); 
+0

И как контроллер вызывает «database_factory»? – Gustav

+0

Возможно, добавьте его в вопрос и отформатируйте его? Это не выглядит правильно. – Gustav

+0

И этот вызов выполняется прямо в функции контроллера? а не в 'scope.test()' -функции или что-то еще? – Gustav

ответ

1

Изменение database_factory в database_serive решил проблему.