尝试通过路由器导航到另一条路线时出现角度错误?

时间:2017-05-09 13:43:22

标签: angular

在管理页面上,我有一个如下所示的注销按钮:

<button class="btn btn-primary pull-right" (click)="logout()">Logout</button>

在admin.component.ts中,注销按钮为:

logout() {
    this._router.navigate(['/login']);
  }

当我单击注销按钮时,我在chrome开发者控制台中收到以下错误消息:

Uncaught (in promise): Error↵Error↵ at Error.ZoneAwareError (http://localhost:4200/polyfills.bundle.js:3051:33)↵ at ZoneAwareError (http://localhost:4200/polyfills.bundle.js:3048:35)↵ at injectionError (http://localhost:4200/vendor.bundle.js:5912:86)↵ at noProviderError (http://localhost:4200/vendor.bundle.js:5950:12)↵ at ReflectiveInjector_._throwOrNull (http://localhost:4200/vendor.bundle.js:7451:19)↵ at ReflectiveInjector_._getByKeyDefault (http://localhost:4200/vendor.bundle.js:7490:25)↵ at ReflectiveInjector_._getByKey (http://localhost:4200/vendor.bundle.js:7422:25)↵ at ReflectiveInjector_.get (http://localhost:4200/vendor.bundle.js:7291:21)↵ at AppModuleInjector.NgModuleInjector.get (http://localhost:4200/vendor.bundle.js:8238:52)↵ at PreActivation.getToken (http://localhost:4200/vendor.bundle.js:40056:25)↵ at MergeMapSubscriber.project (http://localhost:4200/vendor.bundle.js:40010:48)↵ at MergeMapSubscriber._tryNext (http://localhost:4200/vendor.bundle.js:49726:27)↵ at MergeMapSubscriber._next (http://localhost:4200/vendor.bundle.js:49716:18)↵ at MergeMapSubscriber.Subscriber.next (http://localhost:4200/vendor.bundle.js:23374:18)↵ at ArrayObservable._subscribe (http://localhost:4200/vendor.bundle.js:49285:28)"

这实际上在以前工作,但现在如果我导航到除了我当前路线之外的任何路线,我收到此错误消息。错误信息对我来说很神秘,所以我不确定是什么导致它。

1 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的zone.js? (您可以查看package.json文件。)

其中一个版本的zone.js中存在一个错误,导致它生成此错误,屏蔽真正的错误并使其几乎不可能找出错误。

当时,我只是将版本重新设置为先前版本,然后真实的消息告诉我出了什么问题。

此错误有时也是由服务问题引起的,当服务未正确注册(使用组件或模块)或未正确注入(在构造函数中)时,可能会导致此错误。