我正在构建一个页面,人们应该可以通过多个过滤器/值来过滤内容。 他们应该能够通过复制网址来共享它,以便网址提供有关当前过滤器的信息。
它将是ng2中的可选参数(requestParams)。 但我想知道是否可以在requestParams中发送数组:
this.router.navigate(['/heroes/12', { foo: ['foo', 'foo2', 'foo3'], test: 'youhou' }]);
答案 0 :(得分:0)
不要这样做。
在范围之外创建一个全局可变的,更好的服务并将数据存储在其中。最后,当它不需要时,它会清除它。
或者,如果您使用.ts继承自包含该模型的某个基本控制器。
或创建一个服务,它将存储此模型并将其传递给构造函数。
答案 1 :(得分:0)
你试过这段代码吗?根据angular Router.navigate的文档,这不是你应该如何导航。
这是一个应该有效的示例,使用NavigationExtras传递queryParams(它们在url中,因此可以与链接共享):
//route is the current ActivatedRoute
this.router.navigate(['heroes', 12], {
relativeTo: route,
queryParams:
{
foo: ['foo', 'foo2', 'foo3'],
test: 'youhou'
}
);
答案 2 :(得分:0)
我试着记住人们的答案,所以我想出了以下答案:
我将url中的数组替换为params'值之间的.
字符串。我完全拥有params名称,那里没有问题。我只是在需要时拆分/加入值。
为何选择.
?因为它是一个未在url中替换的char,它使url更清晰。