У меня проблема с фрагментом, он работает так, как будто я обновляю что-либо на вкладке, другая вкладка должна измениться (вызывая функцию GET)
И мой фрагмент работает очень хорошо в этом случае, вот вам мой фрагмент:
$scope.updateContact = function (contact) {
$http.put('http://127.0.0.1:8000/api/v1/contact/' + $scope.clickedContact.id + '/?=format=json', $scope.clickedContact)
.then(function(response){
$scope.successEdit = 'You have updated the contact successfully';
$scope.getAllContact(); // this function will make sure to reload the page after edit
$localStorage.editedData = response.data;
$scope.editedID = $localStorage.editedData.id;
if (response.data.id == $localStorage.editedData.id) {
$localStorage.isChanged = true;
}
$timeout(function(){
$scope.successEdit = '';
},4000);
}, function(response){
var errorData = response.data;
$scope.errorEdit = Object.values(errorData)[0][0];
$timeout(function(){
$scope.errorEdit = '';
}, 5000);
});
};
setInterval(function() {
if ($localStorage.isChanged == true) {
$scope.getAllContact();
localStorage.clear();
}
}, 5000);
Надеюсь, вы заметили setinterval в конце фрагмента:
setInterval(function() {
if ($localStorage.isChanged == true) {
$scope.getAllContact();
localStorage.clear();
}
}, 5000);
Проблема с этим,
Я хочу, чтобы локальное хранилище изменилось, чтобы оно вызывало эту функцию $scope.getAllContact();
, и после этого оно должно очистить localstorage
Это работает, но проблема в том, что оно работает постоянно, даже если локальное хранилище очищено.
Я хочу вот так:
- Когда данные локального хранилища изменились, он должен вызвать эту функцию
$scope.getAllContact();
и затем очистить локальное хранилище. и даже если позднее произойдет другое изменение, функция $scope.getAllContact();
выполнится снова, а затем снова очистится , но проблема в том, что теперь она выполняет и очищает, даже если не ждет, когда произойдет другое изменение, она постоянно выполняется после того, как произойдет только одно изменение. Как я могу заставить его ждать, чтобы выполнить снова после того, как другое изменение происходит?.