Вот решение для обновления всех с использованием одного и того же приложения Angular
Шаг 1: Составьте список всех открытых вкладок с уникальным идентификатором.
const myTab = sessionStorage.tabID ? sessionStorage.tabID: Math.random();
let tabList = JSON.parse(localStorage.getItem('tabList'));
if(!tabList) tabList = {};
tabList[myTab] = { refresh: false, updated_ts: new Date() };
localStorage.setItem('tabList', JSON.stringify(tabList));
Шаг 2: Мониторинг активности в локальном хранилище.[Это можно сделать несколькими способами]
setInterval(function(){
let tabList = JSON.parse(localStorage.getItem('tabList'));
if(tabList && tabList[myTab] && tabList[myTab].refresh){
delete tabList[myTab];
localStorage.setItem('tabList', JSON.stringify(tabList));
console.log("Do refesh");
// location.reload();
}
else{
console.log("Don't refesh");
}
}, 3000);
ИЛИ (Подписаться на события хранения)
window.addEventListener('storage', function(e) {
// Your logic
});
Шаг 3: Обновление триггера
function triggerRefesh() {
let tabList = JSON.parse(localStorage.getItem('tabList'));
if(tabList) for (const tabID in tabList) tabList[tabID].refesh = true;
localStorage.setItem('tabList', JSON.stringify(tabList));
}
Примечание: Не следует перезагружать угловое приложение, а скорее направить на страницу аутентификации или обновить компонент