是否可以在requestParams中传递数组?

时间:2016-11-02 08:49:36

标签: angular angular2-routing

我正在构建一个页面,人们应该可以通过多个过滤器/值来过滤内容。 他们应该能够通过复制网址来共享它,以便网址提供有关当前过滤器的信息。

它将是ng2中的可选参数(requestParams)。 但我想知道是否可以在requestParams中发送数组

this.router.navigate(['/heroes/12', { foo: ['foo', 'foo2', 'foo3'], test: 'youhou' }]);

3 个答案:

答案 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更清晰。