14

異なるいくつかのルートがありますが、同様のパラメーターが含まれています。
例:

when '/user/:accountId/charts/:chartType', controller:ChartsController
when '/manager/:accountId/charts/:chartType', controller:ChartsController
when '/whatever/pathy/paththingy/charts/:chartType', controller:ChartsController

3 つのビューはすべて同じ Charts Controller を使用してビューを制御していることに注意してください。かなり一般的なコントローラーですが、残りのルートを維持しながら、利用可能な chartTypes を切り替える必要があります。
例: (これは機能しません)

if my currrent url is '/user/001/charts/comparison'
Then I call something like:
$route.current.params.chartType = 'newChart';
$route.reload(); // or soemthing similar?
I want the url to become '/user/001/charts/newChart'

ルート パスを完全に再入力したり再構築したりせずに、ルートのパラメータを簡単に更新する方法を知っている人はいますか?

4

3 に答える 3

13

$route.updateParams(newParams)angular 1.3以降、ルートパラメーターを変更するために使用できます。

これは角度ドキュメントからの引用です...

$route.updateParams(newParams);

サービス$routeが現在の URL を更新し、現在のルート パラメータを で指定されたものに置き換えますnewParams。ルートのパス セグメント定義に一致する指定されたプロパティ名は、場所のパスに補間されますが、残りのプロパティはクエリ パラメータとして扱われます。

于 2015-01-20T23:30:42.680 に答える
5

この単純な機能の欠如が私を悩ませたので、私はそれを実装し、GitHub に PR を提出しました

于 2014-07-26T23:46:14.727 に答える