angularjs автоматическая перезагрузка при изменении бэкэнда

мне нужно в моем приложении для автоматического обновления при изменении бэк-энда. Я добавил кнопку, чтобы перезагрузить GET до моего бэк-энда, но я не хочу этого делать. Это мой код

<body data-ng-app="myPr">
  <div ng-controller="TodosController">
    <div ng-repeat="todo in todos">
      <p>{{todo.title}} ...... {{todo.is_completed}}</p>
    </div>
    <button ng-click="reload()">Reload</button>
  </div>
</body>

Мои приложения.js

var myPr = angular.module('myPr',[]);

myPr.controller("TodosController", function ($scope,$http){

  $scope.reload = function () {
    $http.get('http://localhost:3000/api/todos').
        success(function (data) {
          $scope.todos = data.todos;
      });
  };
  $scope.reload();
});

спасибо

2 ответов


вы можете просто перезагружать данные через регулярные промежутки времени. Иначе нужно будет что-то настройка типа гнездо.Ио или толкатель и push-уведомления в браузер при обновлении сервера.

var myPr = angular.module('myPr',[]);

myPr.controller("TodosController", function ($scope,$http,$timeout){

  $scope.reload = function () {
    $http.get('http://localhost:3000/api/todos').
        success(function (data) {
          $scope.todos = data.todos;
      });

    $timeout(function(){
      $scope.reload();
    },30000)
  };
  $scope.reload();
});

можно использовать $interval(fuctionToRepeat, intervalInMillisecond) как документально здесь.

var myPr = angular.module('myPr',[]);

myPr.controller("TodosController", function ($scope,$http){

    $scope.reload = function () {
        $http.get('http://localhost:3000/api/todos').
            success(function (data) {
                $scope.todos = data.todos;
            });
    };
    $scope.reload();
    $interval($scope.reload, 5000);
});

Примечание: интервалы, созданные этой службой, должны быть однозначно уничтожены, когда вы закончите с ними. В частности, они не уничтожаются автоматически при уничтожении области действия контроллера или элемента директивы. Вы должны принять это во внимание и обязательно отменить интервал в соответствующий момент.