私は本格的なAngularアプリを持っています。
私が必要とする唯一の機能は、同じサイトが 4 つのタブで開いている場合で、ユーザーが開いているタブの 1 つでログアウト ボタンを押している場合、開いている他のすべてのタブでアプリケーションをログアウトする必要があります。
これに関する美しい例を見つけました
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 で実行したいということです。理由は、ログアウト関数を角度で記述しているため、両方をマージするのが少し難しく、もう 1 つの理由は、これを JS で行うと確実にコードが汚れてしまうからです。
だから、$watch
ローカルストレージの変更イベントをキャッチするために使用できる方法はありますか.Or何かを使用して、すべてのタブからログアウトを実行します.
上記のコードをAngularで変換してください。