Angular5 - не удалось запустить метод контроллера из события хранения окна

Я использую Angular5 и не могу вызвать метод контроллера из события хранения окна.

В init контроллер init я объявляю событие хранения окна следующим образом:

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

Теперь, когда это событие запущено, мы не можем использовать какой-либо метод этого контроллера, потому что мы находимся на каком-то другом контроллере.

Можете ли вы предложить, что нам нужно сделать?

1 ответ

Вот почему angular не рекомендует использовать свойства окна или напрямую манипулировать DOM. Ваша попытка подобна регулярному click -Listener для объекта DOM и пытается выполнить некоторые функциональные возможности компонента.

Прямым решением было бы использование правильного слоя между функциональностью браузера и angular, например https://github.com/lelong37/angular-localstorage-observables или ngx-webstorage. Если вы хотите или должны реализовать этот уровень самостоятельно, я бы порекомендовал проверить их репозитории github для проверки исходного кода.

Другие вопросы по тегам