AngularJS перезагружает сразу несколько вкладок при любых изменениях - PullRequest
0 голосов
/ 20 мая 2019

У меня есть форма добавления, которая, если пользователь подает форму и отправляет, одновременно, пользователь может видеть данные на той же странице в таблице с помощью пользовательского интерфейса, и это не проблема !!

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

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

вот мой метод сообщения:

$scope.formModel = {}; 
  $scope.onSubmit = function () {
      $http.post('http://127.0.0.1:8000/api/v1/contact/create/', $scope.formModel)
      .then(function(response) { //if success, below fuction will execute
        $scope.successPost = 'You have successfully submitted your Contact';
        $timeout(function() {
          $scope.successPost = '';
        }, 4000);
        //below $scope will push data in client site if the request is success
        $scope.contacts.push(response.data);
        //if any error occurs, below function will execute
      }, function(response) {
        // below variable will get predefined message that will explain exactly what happened
        var errorData = response.data;
        $scope.errorPost = Object.values(errorData)[0][0];
        $timeout(function(){
          $scope.errorPost = '';
        }, 4000);
      });
      $scope.formModel = {}; //It means, after submit, the form field will clear
      $scope.addContactForm.$setPristine(); 
  };

Я хочу увидеть изменения на другой вкладке без обновления или перезагрузки

1 Ответ

0 голосов
/ 20 мая 2019

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

или вы можете использовать службу, предоставляющую веб-сокет, который отправляет вам клиенту уведомление об обновлении, как только что-то изменилось в ваших данных.

Просто хотитеНаправьте вас в правильном направлении, тема слишком большая, чтобы обеспечить готовое решение.Я рекомендую провести некоторое исследование о том, как взаимодействовать между вкладками / как создать сервис с уведомлением об обновлении для новых данных

Редактировать: просто добавить точку @Yftach из комментариев: теоретически локальное хранилище является общим для вкладок,так что теоретически вы можете иметь переменную и наблюдать за изменениями.Однако решение с отдельным сервером (по крайней мере, на мой взгляд) лучше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...