使用`router.navigate()`在Google登录回调中,Angular4路由器断开



我需要在Angular4应用程序中实现Google登录,但是在使用Crouter.navigate()中,我遇到了奇怪的问题。

我在这里设置了一个问题的示例,请注意重复的步骤在第一页上。

我还在此处设置了使用已部署的代码的存储库,损坏路由的示例是在angular-4-google-signin分支中,并且与Angular2正常工作的路由示例在angular-2-google-signin分支中。您可以在那里看到Angular2版本路由在相同的动作顺序之后正常工作。

我需要了解Angular还是我不正确使用其路由器的问题。如果我不正确地使用路由器,请给我一个暗示如何修复它。

我已经从github(两个分支)(您的代码)下载了您的代码。我运行了npm install,然后运行ng serve,它的工作就像魅力。我已经安装了npm v5.3.0node v6.10.3。所以我想您要么上传了错误的代码,要么设置中的某些内容是错误的。

我建议您下载自己的代码并在您更新为最新版本之后检查一下。

对于V4版本,我在运行npm install时遇到了错误。我删除了以下部分:

  "engines": {
    "node": "6.11.1",
    "npm": "3.10.9"
  },

来自package.json文件,然后按预期安装,服务和功能工作。因此,我再次怀疑节点/npm问题。

我的问题与您相同。看来没有找到"变化"角。您可以尝试在区域中运行代码。run回调。

我这样更改了代码:

更改之前:

this._router.navigate(['dashboard'])

更改后:

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

现在起作用!

最新更新