在我的 AngularJS 应用程序中,两个窗口通过 localStorage 进行通信,以便使用单个 Websocket 连接。主窗口监听来自服务器的消息,将传入的数据放入 localStorage 属性中。子窗口在此属性上使用 Angular $watch 将传入数据放入网格中。要求使用不同的窗口和单个连接。
问题在于,子窗口的 Controller 似乎无法观看 localStorage 属性,直到浏览器开发工具(F12)未打开。
如何解决这个问题?
最佳答案
我有一个也使用 localstorage 和 localforage.js 的 Angular 项目。不过,这个说法确实将您的问题缩小到了开发工具,不是吗?:
"until the browser development tool (F12) is not open."
确保未选中此框。
重新加载页面并重试。
或者您可以尝试以下解决方案:Using localstorage checks in a different window使用window.postMessage()
我们的 QA 团队报告了由于使用本地存储打开两个窗口而产生的几个错误,因此数据访问必须紧密同步。因此子窗口会将数据发送到处理本地存储的父窗口。
关于javascript - AngularJs 应用程序无法监听另一个窗口中的 localStorage 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44545913/