Angularer UI-Sref-Kodierungsparameter

8

Mein Router sieht so aus:

%Vor%

aber wenn ich

benutze %Vor%

mit mypath=part1/part2 Ich erwarte, dass es in /project/part1/part2 wird, aber stattdessen bekomme ich /project/part1%252Fpart2 .

Wie kann ich Parameter übergeben, ohne sie zu codieren?

    
amitdar 08.01.2015, 20:50
quelle

3 Antworten

8

Da hier beschrieben wurde, müssen Sie den benutzerdefinierten Variablentyp deklarieren für URL-Parameter, um Schrägstriche nicht codiert zu haben. Zitat von github:

  

Wenn Sie wirklich nicht möchten, dass der Schrägstrich für Sie codiert wird, registrieren Sie einen benutzerdefinierten Typ mit Ihrer Regexp und deklarieren Sie item_id als benutzerdefinierten Typ, d. h. url: / {item_id: MyType}

%Vor%     
fracz 08.01.2015, 22:13
quelle
2

Um dieses Problem zu lösen, können Sie einen Zustand ändern, indem Sie $ location.path () verwenden, das Schrägstriche in stateparams hat. Zum Beispiel, wenn unser Zustand so ist:

app.js

%Vor%

In diesem Fall kann path param mehrere Schrägstriche enthalten. Wenn Pfad = part1 / part2 ist, erhalten Sie eine Route wie diese /project/part1%252Fpart2 , indem Sie ui-sref oder $state.go() verwenden. Um das korrekte Routing (d. H.% Co_de%) zu erhalten, verwenden Sie $ location.path (), um einen Status zu ändern.

HTML:

%Vor%

Controller:

%Vor%     
Rubi saini 27.05.2015 06:36
quelle
1

in neuen ui-router 1.0 können wir root: true param verwenden was die URL-Kodierung des Parameters wie hier hier

deaktiviert > %Vor%

Eine ausführlichere Erklärung finden Sie hier:

Ссылка

    
Igor Simic 06.04.2017 21:10
quelle

Tags und Links