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 для проверки исходного кода.