在允许我的应用从云功能访问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 {}
我认为问题在于,角路由器无法使用?作为分隔符。
很高兴收到您的意见。
预先感谢您的帮助。
答案 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