当一个选项卡中发生更改时,我正在尝试执行功能,该更改也应反映在其他选项卡中。
我编写了此代码,即使我手动检查浏览器的本地存储并看到它的效果很好,我也可以在相同的选项卡中进行更改。
但有问题,更改也未反映在其他选项卡中。
我的意思是,我打开了两个选项卡,当我在一个选项卡中更改某些内容时,它应该反映在另一个选项卡中。
只要一个选项卡中发生任何更改,第二个选项卡应执行此$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
}
我写了以上代码;
如果您理解以下代码,请忽略下面的代码,下面的代码是功能,当发生更改时,应执行该功能:
$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();
答案 0 :(得分:1)
您需要在一定时间差内检查本地存储
setInterval(function(){
if ($localStorage.isChanged == true) {
$scope.getAllContact();
}
}
}, 500);
答案 1 :(得分:1)
请参阅以下代码可能有帮助
$scope.$apply(function() {
$scope.contacts = response.data;
});
或
根据我的假设,您一次只能看到一个标签。因此,致电$scope.getAllContact()
每当您点击第二个标签时。