angular js 的路由怎么在谷歌浏览器中不能用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angular js 的路由怎么在谷歌浏览器中不能用相关的知识,希望对你有一定的参考价值。

参考技术A router和浏览器是没有关系的,你看是不是路径传入的不正确

Angular 5 路由器在谷歌登录回调中无法正常工作

【中文标题】Angular 5 路由器在谷歌登录回调中无法正常工作【英文标题】:Angular 5 router does not work properly in google login callback 【发布时间】:2018-10-14 22:54:18 【问题描述】:

我正在构建具有登录和仪表板以及简单路由的网络应用程序;

我有两个登录选项和路线:

登录选项:

    使用电子邮件:

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

    用谷歌:

    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']);
          );
      );
    

    路由器选项:

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

邮箱登录成功后,路由器导航,没有问题。

问题是,当 google 使用 google sign in 登录并且路由器导航到 /dashboard 时,应用程序会以这种方式崩溃:

    如果我按下按钮更改路线,它只会显示它的视图并且不会从 dom 中删除我的仪表板。 有时登录页面不会从 dom 中删除 其他函数在我的代码中不起作用。 控制台中没有错误

当我重新加载页面时,一切正常。

【问题讨论】:

【参考方案1】:

要解决这个问题,试试吧!

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

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

参考:Angular 2 ngOnInit not called

【讨论】:

以上是关于angular js 的路由怎么在谷歌浏览器中不能用的主要内容,如果未能解决你的问题,请参考以下文章

有道词典怎么在谷歌浏览器屏幕取词

Angular Js路由谷歌浏览器问题

Angular最新教程-第三节在谷歌浏览器中调试Angular

iframe在谷歌浏览器中与在ie、火狐中显示不一致问题!

怎么关闭谷歌浏览器自动断点调试?

CSS未显示在谷歌浏览器的覆盖选项卡中