AngularJS $ localstorage не работает в другой вкладке - PullRequest
0 голосов
/ 22 мая 2019

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

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

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

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

Всякий раз, когда происходит какое-либо изменение на одной вкладке, 2-я вкладка должна выполнить это $scope.getAllContact(); и ждать другого изменения, если произойдет другое изменение, $scope.getAllContact(); должно быть выполнено.

$localStorage.editedData = response.data;
      $scope.editedID = $localStorage.editedData.id;
      if (response.data.id == $localStorage.editedData.id) {
        $localStorage.isChanged = true;
      }

      while ($localStorage.isChanged == true) {
        $scope.getAllContact();
        break        
      }

Я пишу выше код;

Игнорировать под этим кодом, если вы берете несколько строк выше, под кодом - fuction, когда происходит изменение, следует выполнить fuction:

$scope.getAllContact = function() {
    var data = $http.get("http://127.0.0.1:8000/api/v1/contact")
    .then(function(response) {
      $scope.contacts = response.data;
      // below two line of codes will reload in every 10 millisecond if a request succcess
      // in result, you will see refleation in other browser if any change occurs in another browser
      // do nothing for now
    }, function(response) {
      //$scope.connectionError = "Opps ! Having Trouble in loading this page ! \n  It's Connection Error !!!";
      // below two line as as above two commented line
      // do nothing for nw
    });
  };
  $scope.getAllContact();

Ответы [ 2 ]

1 голос
/ 22 мая 2019

См. Ниже код может помочь

$scope.$apply(function() {
    $scope.contacts = response.data;
});

или

Согласно моему предположению, вы можете видеть только одну вкладку.Поэтому при каждом нажатии на вторую вкладку звоните $scope.getAllContact().

1 голос
/ 22 мая 2019

Вам необходимо проверить локальное хранилище на определенную разницу во времени

 setInterval(function(){
     if ($localStorage.isChanged == true) {
            $scope.getAllContact();      
          }  
          }
    }, 500);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...