动态角度路由器路径

时间:2017-11-21 11:38:55

标签: angular angular-router

这是我目前的路由器:

QTextCodec *codec = QTextCodec::codecForName( "Windows-1251" );
QByteArray encodedString = codec->fromUnicode( "абцде.txt" );

我有一个用户搜索多个目的地时创建的动态网址。

网址示例:localhost:4200 / filter / africa / botswana / europe / spain / asia / china

我可以创建一条接受此网址的路径,而不会像下面那样制作多条路径吗?

const routes: Routes = [
  { path: '',  component: HomeComponent },
  { path: 'filter',  component: FiltersPageComponent},
  { path: 'filter/:continent',  component: FiltersPageComponent},
  { path: '**', canActivate: [RouteLoader], component: ErrorComponent},
];

4 个答案:

答案 0 :(得分:0)

不,你不能。您的路线中不能有重复的参数。如果您这样做,您只能获取网址中重复的最后数据。在您的情况下,它将只返回亚洲和中国

答案 1 :(得分:0)

Angular' paramMap应该启用此功能。

您可以订阅网址参数,并分别在每条路线上运行您想要的内容。请参阅以下示例:

this.route.paramMap.subscribe(params => {
    if (params.get('username'))) {
        // Route to particular path...
        // Or do something else...
    }
});

以下是一些其他资源:

答案 2 :(得分:0)

使用path参数是不可能的(也是错误的),但你应该可以使用这样的query参数执行此操作:

localhost:4200/yourroute?filter=africa&filter=botswana&filter=europe&filter=spain

Query params and fragments

答案 3 :(得分:0)

我最终使用的解决方案是:

{ path: 'filter',  component: FiltersPageComponent,
  children: [
    { path: '**', component: FiltersPageComponent}
  ]
},

使用此方法时我唯一能想到的问题是用户可以在网址中随意放置任何内容,并且仍然会重定向到filtersPageComponent。