1

我正在使用 Angular5,但无法从窗口存储事件触发控制器方法。

在 init 控制器 init 中,我声明了一个窗口存储事件,如下所示:

window.addEventListener('storage', this.messageReceive);

现在,当这个事件被触发时,我们无法访问该控制器的任何方法,因为我们在其他一些控制器上。

你能建议我们需要做什么吗?

4

1 回答 1

0

这就是为什么 Angular 不鼓励您使用窗口属性或直接操作 DOM。您的尝试就像将常规click-listener 绑定到 DOM 对象并尝试执行某些组件功能。

直接的解决方案是在浏览器功能和角度之间使用适当的层,例如angular-localstorage-observablesngx-webstorage。如果您想或必须自己实现该层,我建议您查看他们的 github 存储库以检查源代码。

于 2018-07-17T11:56:07.690 回答