Как мне получить доступ к значениям компонента angular из контекста функции window?

Я отлавливаю нажатие кнопки "Обратно" в браузере- после чего должны подгрузиться данные, соответственно текущим запросам роутинга, но там идёт потеря контекста, на сколько я понял, и я не могу вызвать функции самого компонента Angular.
Я делаю так.


ngOnInit(){
        this.my_func();
    
        window.onpopstate = function(event) {
          console.log(this);
          this.my_func();  //идёт потеря контекста, а мне нужно запустить эту функцию
        };
      }
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ответы на вопрос 2
hzzzzl
@hzzzzl
попробуй
window.addEventListener('popstate', this.my_func)

не знаю как в ангуляре, но надо еще добавить removeEventListener на случай когда компонент будет удален из DOM
Ответ написан
@kttotto
пофиг на чем писать
А если так?
window.onpopstate = (event) => {
   console.log(this);
   this.my_func();  //идёт потеря контекста, а мне нужно запустить эту функцию
};

Или
ngOnInit(){
    this.my_func();

    const self = this;

    window.onpopstate = function(event) {
    console.log(self );
    self.my_func();  //идёт потеря контекста, а мне нужно запустить эту функцию
  };
}

Или
const callback = function(event) {
    console.log(this);
    this.my_func();
}
window.onpopstate = callback.bind(this);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы