我有一个完整的角度应用程序。
我需要的唯一功能是,如果在4个选项卡中打开同一个站点,并且如果用户在其中一个打开的选项卡中按下注销按钮,则应该在所有其他打开的选项卡中注销该应用程序。
我在这个
上找到了一个很好的例子function storageChange(event) {
if(event.key == 'logged_in') {
alert('Logged in: ' + event.newValue);
}
}
window.addEventListener('storage', storageChange, false);
例如,如果其中一个选项卡注销:
window.localStorage.setItem('logged_in', false);
但唯一的问题是我想在角度而不是普通的javascript中进行。原因是我的logout函数是以角度编写的,因此将两者合并都有点困难,另一个原因是在JS中执行此操作肯定会使我的代码变脏。
那么,有什么方法可以使用$watch
或其他东西来捕获localstorage change事件。或者任何事情,然后从所有选项卡执行注销。
任何人都可以在Angular中转换上面的代码。