2016-11-02 11 views
0

私は、人々が複数のフィルタ/値でコンテンツをフィルタリングできるべきであるページを構築しています。 URLをコピーして共有できるので、URLは現在のフィルタに関する情報を提供する必要があります。requestParamsに配列を渡すことはできますか?

ng2ではオプションパラメータ(requestParams)になります。 しかし、それはこのような requestParamsに配列を送信することが可能です場合、私は思ったんだけど:

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

答えて

0

私は心の人々の答えに維持しようとしましただから私は次の答えを考え出した:

urlの配列をparamsの値の間に.の文字列で置き換えました。私は完全にparamsの名前を所有しているので、そこに問題はない。必要に応じて値を分割/結合するだけです。

なぜa .ですか?それは、URLで置換されていないcharであり、URLをよりきれいにするからです。

0

これをしないでください。

スコープ外でグローバルなvalriableを作成し、サービスを改善し、データをそこに格納します。そして最後に、それが必要でないときにそれをクリアしてください。

.tsを使用している場合は、そのモデルを含むベースコントローラーから継承します。

または、このモデルを格納してコンストラクタに渡すサービスを作成します。

+0

私は理解していますが、現在のフィルタを共有する可能性はありますか? – Tom

+0

@jeremyなぜこれが必要ですか?サーバー側ではなくコントローラ間でデータを渡すだけで済むため、モデル、コントローラー、サービスで作業しています。追加の行やURLの解析をせずにメモリに格納することができます。 – BorHunter

+0

@ jeremyので、サーバーと使用するクライアント側のフィルタからすべてのデータを取得しています、そうですか? – BorHunter

0

このコードを試しましたか? Router.navigateのangularのドキュメントによると、それはどのようにナビゲートするべきかではありません。ここで

がqueryParams渡すNavigationExtrasを使用して、動作するはずの例です(URL内であるため、リンクを共有することができます):

//route is the current ActivatedRoute 
this.router.navigate(['heroes', 12], { 
    relativeTo: route, 
    queryParams: 
     { 
      foo: ['foo', 'foo2', 'foo3'], 
      test: 'youhou' 
     } 
); 
+0

配列を使うことができるのかどうかは教えてもらえませんが、これを試してみます。ありがとう – Tom

+0

私はあなたがNavigationExtrasとして生のオブジェクトを渡すという事実について話していました。私はそれがうまくいくとは思わない。さらに、navigateByUrlのURLがナビゲートされていないという事実に加えて、 – Supamiu

+0

さて、私の質問に対する答えはノーだと思います。それで、他の方法を見つけてください。ありがとう! – Tom

関連する問題