2016-12-07 1 views
0

Ich habe eine Seite mit mehreren Parametern in meiner URL. Ich versuche eine Funktion zu schreiben, die beim Klicken eines Elements verwendet wird. Ich möchte überprüfen, ob der Parameter pthree existiert. Wenn dies der Fall ist, aktualisieren Sie es auf einen neuen Wert (nicht duplizieren). Wenn es nicht existiert, hängen Sie es an meine aktuelle URL an und laden Sie die Seite neu.

Ich habe ein Problem, wenn ich versuche, die aktuelle URL zu aktualisieren.

Meine aktuelle URL-Struktur:

mypage pone = 99,9999999 & pZwei = -44,4444444 & pDrei = 1 & pfour = 1 & pfive = 1

Controller-Schnipsel:

$scope.test = function(){ 
    $location.search('pthree', 0); 
} 

Dies funktioniert teilweise. Es aktualisiert meine URL, fügt aber #? Pthree = 0 am Ende meiner aktuellen URL ein.

Das Ergebnis Ich mag würde stattdessen ist:

mypage pone = 99,9999999 & pZwei = -44,4444444 & pDrei = 0 & pfour = 1 & pfive = 1

Irgendwelche Gedanken auf, was Ich könnte tun, um mein gewünschtes Ergebnis zu bekommen? Danke im Voraus!

+0

Ich glaube, Sie könnten http://stackoverflow.com/questions/38206805/angularjs-change-single-url-parameter-on-load-if-it-matches-a-value?rq lesen möchten = 1 – Vinny

+0

Hallo @ Vinny. Ich habe die akzeptierte Antwort von der angegebenen URL ausprobiert und bekomme immer noch die #? Pthree = 0 am Ende meiner aktuellen URL hinzugefügt. –

Antwort

0

Hier ist, was für mich gearbeitet hat. Ich stellte fest, dass ich den HTML5-Modus meiner App einstellen musste. Lesen Sie mehr über den HTML5-Modus hier: https://docs.angularjs.org/guide/ $ location.

Danach stieß ich auf ein anderes Problem beim Aufruf von $ location.search ({pThree: '0'}. Es begann zu schreiben über alle meine anderen Parameter. Zum Beispiel änderte sich die URL-Struktur zu? PThree = 0 . um dies zu lösen, hatte ich alle Parameter zu lesen, aktualisieren pDrei, und dann alle wieder schreiben

ich hoffe, das jemand anderes hilft

0

Sie dies nur tun, ziemlich leicht tun können:..

// existing url with params 
// http://myurl.com/path/view/etc?param1=abc&param2=def 

// add your new param to the search() object 
$location.search().param3 = 'ghi'; 

// set your search again with the updated search object 
$location.search($location.search()); 

Dies wird Ihre URL wie folgt aktualisieren:

// http://myurl.com/path/view/etc?param1=abc&param2=def&param3=ghi 
Verwandte Themen