функция не вызывается из функции щелчка в угловых 5 - PullRequest
0 голосов
/ 26 апреля 2018

Привет, ребята, я застрял с небольшой проблемой в angular 5, я пытаюсь вызвать метод проверки общего сеанса, который импортируется из общего файла TS, я использую метод проверки сеанса при загрузке страницы и по нажатию кнопки выхода, чтобы перенаправить пользователя на страницу входа. но при загрузке страницы все работает нормально, но при нажатии кнопки выдается ошибка undefined, пожалуйста, помогите заранее.

Приборная панель enter image description here импортный enter image description here

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Вы объявляете это с var и называете с this. Это не свойство компонента, поэтому он не работает.

0 голосов
/ 26 апреля 2018

У вас есть другая область действия внутри обещания.

logout() {
 let self = this;
 var session = gapi.auth2.getAuthInstance();
 session.signOut().then( function() {
   localStorage.clear();
   self.s.checkIfSignedIn();
  });
}
0 голосов
/ 26 апреля 2018

this внутри function() { ... } определения относится не к вашему компоненту, а к контексту этой функции. Используйте функцию стрелки, чтобы this контекст оставался связанным с вашим компонентом:

logout() {
  session.signOut().then(() => {
    this.s.checkIfSignedIn();
  });
}

Также вы должны удалить ключевое слово var при объявлении переменной класса u.

Бонусные советы:

  • заботитесь о предупреждениях вашего редактора / линтера (чтобы подавить ошибки при доступе к глобальным объектам, таким как gapi, сначала объявите это следующим образом: declare const gapi: any;)

  • забота о отступе кода

  • попытайтесь сделать имена своих переменных описательными, не используйте имена, такие как a или u, опять же, чтобы вы не запутались в коде так просто (кстати, у вас там тоже есть переменная utils, возможно, вам следует использовать это вместо определения нового с именем u ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...