1

我有一个成熟的 Angular 应用程序。

我需要的唯一功能是,如果同一站点在 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来做。原因是我的注销功能是用 Angular 编写的,所以合并两者会有点困难,另一个原因是在 JS 中这样做肯定会使我的代码变脏。

那么,有什么方法可以$watch用来捕捉本地存储更改事件。或者任何东西,然后从所有选项卡中执行注销。

任何人都可以在Angular中转换上述代码。

4

0 回答 0