【发布时间】:2016-11-30 09:02:11
【问题描述】:
所以我的代码如下所示:
export const routes: RouterConfig = [
{ 'path': '', redirectTo: '/jobs', terminal: true, canActivate: [tokenNotExpired()] },
{ path: 'account', component: AccountComponent, canActivate: [!tokenNotExpired()] },
{ path: 'login', component: LoginComponent },
...WihRoutes
];
每当我尝试导航到“帐户”时,路由都会失败,但由于某种原因,它也会出现以下控制台错误:
browser_adapter.ts:82 例外:错误:未捕获(承诺):否 错误的提供者!BrowserDomAdapter.logError @ browser_adapter.ts:82BrowserDomAdapter.logGroup @ browser_adapter.ts:93ExceptionHandler.call @ exception_handler.ts:58(匿名函数)@ application_ref.ts:374schedulerFn @ async.ts:148SafeSubscriber.__tryOrUnsub @ Subscriber.ts:240SafeSubscriber.next @ Subscriber.ts:192Subscriber._next @ Subscriber.ts:133Subscriber.next @ 订阅者.ts:93Subject._finalNext @ Subject.ts:154Subject._next @ Subject.ts:144Subject.next @ Subject.ts:90EventEmitter.emit @ async.ts:133onError @ ng_zone.ts:142onHandleError @ ng_zone_impl.ts:95ZoneDelegate.handleError @ zone.js:327Zone.runGuarded @ zone.js:233_loop_1 @ zone.js:487drainMicroTaskQueue@zone.js:494ZoneTask.invoke@ zone.js:426 browser_adapter.ts:82 STACKTRACE:BrowserDomAdapter.logError @ browser_adapter.ts:82ExceptionHandler.call @ exception_handler.ts:61(匿名函数)@ application_ref.ts:374schedulerFn @ async.ts:148SafeSubscriber.__tryOrUnsub @ Subscriber.ts:240SafeSubscriber.next @ Subscriber.ts:192Subscriber._next @ Subscriber.ts:133Subscriber.next @ 订阅者.ts:93Subject._finalNext @ Subject.ts:154Subject._next @ Subject.ts:144Subject.next @ Subject.ts:90EventEmitter.emit @ async.ts:133onError @ ng_zone.ts:142onHandleError @ ng_zone_impl.ts:95ZoneDelegate.handleError @ zone.js:327Zone.runGuarded @ zone.js:233_loop_1 @ zone.js:487drainMicroTaskQueue@zone.js:494ZoneTask.invoke@ zone.js:426 browser_adapter.ts:82 错误:未捕获(承诺):否 提供者为假! 在 resolvePromise (zone.js:538) 在 zone.js:515 在 ZoneDelegate.invoke (zone.js:323) 在 Object.onInvoke (ng_zone_impl.ts:72) 在 ZoneDelegate.invoke (zone.js:322) 在 Zone.run (zone.js:216) 在 zone.js:571 在 ZoneDelegate.invokeTask (zone.js:356) 在 Object.onInvokeTask (ng_zone_impl.ts:61) 在 ZoneDelegate.invokeTask (zone.js:355)
我不知道为什么会发生这种情况 - 还有其他人吗?
【问题讨论】:
-
tokenNotExpired()长什么样子? -
返回真/假,仅此而已。如果我写 canActivate: false 也会发生同样的事情