我正在将一个现有的应用程序转换为Angular2,并有一个要求,其中一个查询参数可以出现零次或多次(即重复)。例如,一个url有多个用于排序的参数(如#/results/data;sort=column1;sort=column2
)或者当调用solr实例并指定多方面过滤(https://cwiki.apache.org/confluence/display/solr/Common+Query+Parameters#CommonQueryParameters-Thefq(FilterQuery)Parameter)时。通常,接收端点会识别这些重复参数并将其显示为数组。
我怎么能用角2路由呢?我正在使用3.0-beta-2路由器的RC4。当我订阅ActivatedRoute
并查看params
时,只返回最后一个重复的值,但我知道完整的url正在传入,因为Location.path()
显示了键入的内容。
例如,给定以下url
https://localhost:44300/#/search;fq=efg:456;q=xyz;fq=abc
console.log(this.location.path(false));
显示/search;fq=efg:456;q=xyz;fq=abc
但只有
this.route.params.subscribe(params => {
console.log(params);
});
最佳答案
更新
这已经有一段时间了。
原始的
当前不支持此操作。
最终获得对多个值的支持是一个开放的问题。
https://github.com/angular/angular/issues/9477