我正在构建具有登录和仪表板以及简单路由的Web应用程序;
我有两个登录选项和路线:
登录选项:
使用电子邮件:
login(u) {
this._loginService.login(u)
.subscribe(data => {
console.log('Email login successful!');
this._router.navigate(['/dashboard']);
});
使用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']);
});
});
路由器选项:
const appRoutes: Routes = [
{ path: 'dashboard', component: MainComponent},
{ path: 'login', component: LoginComponent }
当使用电子邮件登录成功时,路由器会导航并且不会出现任何问题。
问题是,当谷歌登录谷歌登录并且路由器导航到/仪表板时,应用程序会以这种方式崩溃:
当我重新加载页面时,一切正常。
答案 0 :(得分:0)
要解决此问题,请尝试!
constructor(private zone: NgZone) {
...
...
this.zone.run(() => {
this._router.navigate(['/dashboard']);
});