2014-09-17 13 views
5

Ich versuche eine Winkelroute zu implementieren, die mehrere Parameter haben sollte. Hier ist ein Beispiel dafür, was ich versuchte:Mehrere Parameter in einer AngularJS-Route übergeben

.when('/myRoute/paramA/:paramA/paramB/:paramB/paramC/:paramC', { 
    templateUrl: 'abc.html', 
    controller: 'pwrController as pwrCtrl' 
}); 

Nun ist das Problem dabei ist, dass ich muß immer parama passieren, um paramB zu passieren. Und paraMa und paramB, um ParamC zu bestehen.

Gibt es eine Möglichkeit in Winkel, wo ich ParaMa, ParamB oder ParamC unabhängig voneinander übergeben kann?

Danke. !

+0

Das ist, wie Routing funktioniert: Der einzige Weg zu einem weiteren verschachtelten param zu erhalten, ist die vorherige params zu haben. –

+6

Was meinst du mit unabhängig? Die Art, wie Sie es entworfen haben, besagt, dass Ihre URL alle Parameter in der URL enthalten wird. Warum kann es nicht wie '? ParaMa =' paraMa '& paramB =' paramB '& paramC =' paramC 'gemacht werden – AnkitG

+1

stimme ich zu Mit AnkitG verwenden Sie den Dienst $ location.search ('paraMA', paraMA), um Parameter festzulegen, bevor Sie die neue Route laden, und dann können Sie sie mit $ location.search() lesen. paraMA – SoluableNonagon

Antwort

13

injizieren $location in Ihre Controller und Verwendung, die anstelle von routeParams

var paramA = 'something'; 
$location.search('paramA', paramA); // write 
// result http://localhost:3000/#/route/routeParam?paramA=something 

$location.search() // read whole object 
$location.search().paramA // read one parameter 
// result 'something'; 
+3

Kredit geht wirklich zu @AnkitG, wer war zuerst, den Vorschlag zu machen. – SoluableNonagon

Verwandte Themen