Маршрутизатор Angular 5 не работает должным образом в Google Callback Callback - PullRequest
0 голосов
/ 04 мая 2018

Я создаю веб-приложение, в котором есть логин, панель управления и простая маршрутизация;

У меня есть два варианта входа и маршруты:

Параметры входа:

  1. С электронной почтой:

    login(u) {
        this._loginService.login(u)
           .subscribe(data => {
              console.log('Email login successful!');
              this._router.navigate(['/dashboard']);
           });
    
  2. С Google:

    googleLogin() {
    gapi.auth2.authorize({
        client_id: *
        scope: 'email',
        response_type: 'code',
        prompt: 'select_account'
      },
      (response) => {
        if (response.error) {
          return;
        }
        this._loginService.loginWithGoogle(response)
          .subscribe(response1 => {
            console.log('Google login successful!');
            console.log(response);
            this._router.navigate(['/dashboard']);
          });
      });
    
  3. Опции маршрутизатора:

    const appRoutes: Routes = [ { path: 'dashboard', component: MainComponent}, { path: 'login', component: LoginComponent }

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

Проблема в том, что, когда Google входит в систему с помощью входа в Google и маршрутизатор переходит на / панель инструментов, приложение вылетает таким образом:

  1. если я нажимаю кнопку, чтобы изменить маршрут, он просто отображает вид и не удаляет мою панель управления из домена.
  2. иногда страница входа не удаляется из домена
  3. другие функции не работают в моем коде.
  4. НЕТ ОШИБОК В КОНСОЛИ

когда я перезагружаю страницу, все работает просто отлично.

1 Ответ

0 голосов
/ 28 июня 2018

Чтобы решить эту проблему, попробуйте!

constructor(private zone: NgZone) {
    ...
    ...

      this.zone.run(() => {
         this._router.navigate(['/dashboard']);
       });

Ссылка: Угловой 2 ngOnInit не вызывается

...