2017-04-05 70 views
3

我不知道为什么,但登录后导航到主页工作大部分时间。然而,有时候,应用会停留在登录页面上,并且不会按原样加载主页。router.navigate偶尔不改变视图

我加入。然后和console.logs但即使失败了,我得到“导航成功”在控制台中。我不知道还有什么要寻找。它大概有75%的时间工作,但是当它无法解释为什么时,我在控制台中什么也得不到。

当它失败时,控制台中没有任何消息,我可以看到没有错误,页面视图停留在登录表单上,浏览器的地址栏不会更改,并且不会更改我将获取在它上面敬酒信息。我也尝试在导航调用之后移动敬酒,并且即使在不导航时也仍会得到敬酒。所以我认为toastService不会以任何方式影响它。

public submitLogin(Login) { this.loginService.login(Login.value.email, Login.value.password) .subscribe( () => { this.toasterService.pop('success', 'Login', 'Successfully logged in'); this.router.navigate(['./home']).then( () => console.log('navigation successful'), () => console.log('navigation failed') ); }, err => { this.error = ApiHelper.buildErrorStringFromResponse(this.Login.controls, err); } ); }

+0

请提供URL的你指的。 – Avi

+0

我不知道你的意思,登录在/登录,并成功登录后,就应该导航到/ home。这是你要求的吗? – Derokorian

+0

是的。当你提供错误的证书时会发生什么? – Avi

回答

1

我发现该溶液是因为我没有使用.share()等的订阅并不总是被以固定的顺序执行。对于原来的http调用,我在添加订阅之前添加了.share(),现在它始终运行正确。