【发布时间】:2018-10-25 12:29:01
【问题描述】:
在互联网上进行了大量研究并在路由上通过Offical Angular Doc 之后,我还没有找到一个可行的解决方案,所以在这里发布这个问题,我不知道我是问错了还是完全不同步在这里,请多多包涵,我是 Angular 的新手。
基本上我想定义一个带有多个可选参数的路由。
在我的路由模块中,我正在定义这样的路由
const appRoutes: Routes = [
{path: 'game/:width/:height',component: GameComponent
}];
如果我是导航到https://localhost:4200/game/50/80,这很好用
但给出“无法匹配任何路由异常” 为https://localhost:4200/game/50/
我如何定义一条可以两种方式工作的路线(有/没有高度)
即使是使用查询参数的解决方案也可以,例如https://localhost:4200/?width=50&height=80
【问题讨论】:
-
this.router.navigate(['/products'], { queryParams: { order: 'popular' } });使用这个
-
alligator.io/angular/query-parameters此链接可能对您有所帮助
-
你可以尝试为路由
{path: 'game/:width',component: GameComponent}创建一个新路径 -
@jmdavalos 感谢这个链接很有帮助,所以最终的解决方案是我不需要在定义路由时做任何更改。只需在路由器链接中发送参数,如 ['/game',{width: 50, height:70}] 将发送参数,我可以在路由应用程序中订阅该参数,如 ActivatedRoute.params.subscribe(params => {} ) 这将为我提供参数,最终链接将是 localhost:4200/game;width=50;height=80