身份验证后从Google Calendar API重定向到角度路由,问题出在?在网址中

时间:2019-06-23 20:31:56

标签: angular angular-ui-router google-calendar-api

在允许我的应用从云功能访问Google日历的过程中,用户必须获取代码以允许我检索令牌。 为此,用户必须进行身份验证并允许,然后将用户重定向到我提供的网址。为此,代码以https://myapp.web.app/myroute?code=someCode&scope

的形式添加

https://myapp.web.app/myroute是角度应用的路由。但似乎路由器无法处理此问题,并带来以下错误: 无法匹配任何路线。网址段:“ myroute”

有没有办法让角形router刨机解决这个问题? 我在使用Angular 6.0.8

我得到了错误:

错误:未捕获(承诺):错误:无法匹配任何路由。网址段:“ myroute”

在ApplyRedirects.push ../ node_modules/@angular/router/fesm5/router.js.ApplyRedirects.noMatchError(router.js:1382)[angular]

在我的app-routing.module.ts中:

imports ...

const routes: Routes = [
{ path: 'myroute/:someInfo',     component: myRouteComponent, canActivate: [AuthGuard]},
{ path: 'someOtherRoute',     component: someOtherComponent, canActivate: [AuthGuard]}
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule {}

我认为问题在于,角路由器无法使用?作为分隔符。

很高兴收到您的意见。

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

当然Angular可以处理查询参数! :)

问题出在您的路线定义中:

.AsyncWaitHandle

将匹配{ path: 'myroute/:someInfo', component: myRouteComponent, canActivate: [AuthGuard]}, ,但不匹配myroute/anything-else。如果您还想匹配myroute,请使用以下内容:

myroute

编辑: 在您的组件中,您将必须订阅const routes: Routes = [ { path: 'myroute/:someInfo', component: myRouteComponent, canActivate: [AuthGuard]}, { path: 'myroute', component: myRouteComponent, canActivate: [AuthGuard]}, { path: 'someOtherRoute', component: someOtherComponent, canActivate: [AuthGuard]} ]; 才能检索代码 https://angular.io/guide/router#activated-route