Angular-UI-Router: ui-sref erstellt keine href mit Parametern

7

Ich habe eine HTML-Seite, sobald sie in den Browser des Benutzers geladen ist, wird der Zustand 'Liste' aktiviert und die 'Liste' wird teilweise von Angular gezogen und mit einer Liste von Servern gefüllt.

Jeder Server verfügt über einen Link "Details", der den Status "Details" für diesen Server angibt.

%Vor%

Beim Rendern generiert 'ui-sref' die erwartete 'href' URL basierend auf der Route und den optionalen Parametern.

%Vor%

Wenn es angeklickt wird, funktioniert es wie erwartet und die partiellen 'Details' werden gezogen und ziehen in dem Controller, der diesem Zustand zugewiesen ist, den Server mit dem angegebenen Namen.

Das Problem, auf das ich gestoßen bin, ist die Tatsache, dass, sobald die 'Details' partiell geladen sind, auch sie einen 'UI-Sref' in einen 'Edit'-Zustand hat.

%Vor%

Aber wenn dieses Partial geladen ist, erzeugt das 'ui-sref' nicht die korrekte 'href' URL.

%Vor%

Wie Sie sehen können, ist die 'href' URL '# / edit /' nicht '# / edit / SLCMedia' wie erwartet. Es muss etwas Einfaches sein, das ich vermisse. Hat der Wechsel des Staates etwas damit zu tun?

Hier sind alle definierten 'Zustände' für die Seite.

%Vor%

Hier sind meine Controller

%Vor%     
Schleichermann 18.02.2015, 00:50
quelle

3 Antworten

19

Hmm, ich verstehe dein Problem wahrscheinlich falsch, aber ich sehe zumindest einen offensichtlichen Unterschied zwischen dem Aussehen deines Codes und meinem Aussehen.

Meine angular-ui-Router-Links sehen folgendermaßen aus:

%Vor%

Der Unterschied ist das Fehlen von Klammern um rep.id . Also frage ich mich, ob ich das ändere

%Vor%

zu diesem

%Vor%

könnte etwas für dich tun.

Das ist es wahrscheinlich nicht, aber das ist das erste, was mir in den Sinn kam.

    
Jason Swett 18.02.2015, 01:04
quelle
0

Ich habe eine vereinfachte, aber funktionierende Version erstellt. Weil da nichts offensichtlich falsch ist. Dieses Beispiel sollte Ihnen zumindest helfen, folgendes sicherzustellen:

  

Alles, was du versuchst zu tun, soll funktionieren.

Hier sind die Zustände:

%Vor%

Hier Controller einer Liste, die Daten lädt

%Vor%

(server.json) - Beispiel für Daten

%Vor%

Und die gleiche Vorlage:

%Vor%

Alles funktioniert wie erwartet. Überprüfen Sie hier .

    
Radim Köhler 18.02.2015 05:59
quelle
0

Ich möchte mit einem anderen Datenpunkt beitragen, falls andere Leute hier mit einer ähnlichen Frage kommen, wie ich es getan habe.

Ich habe in meiner App die nicht geschweifte Klammerversion verwendet, und sie hat nicht funktioniert. Zu meinen Besonderheiten gehört das InfoWindow in Google Maps . Ich glaube, es gibt eine Rendering-Reihenfolge "Problem", so dass die Daten für die Ui-Sref Link nicht vorhanden sind, und wenn es schließlich existiert, wird es nie "neu gerendert".

Ursprüngliche (nicht funktionierende) Version:

%Vor%

Arbeitsversion:

%Vor%

Ich habe das %pre -Tag mit den Informationen versehen, um mir zu beweisen, dass das Datum tatsächlich vorhanden war (zumindest letztendlich / irgendwann), aber selbst der ursprüngliche Code für den Link funktionierte nicht. Ich habe meinen Code angepasst, um die interpolierte geschweifte Klammerversion gemäß der OP-Situation zu verwenden, und es hat funktioniert.

Fazit: Ihre Lösung könnte davon abhängen, wie die Elternkomponente das Rendering behandelt. Google Maps ist in diesem Fall ziemlich berüchtigt dafür, "funky" (Fachausdruck) mit Rendering zu sein, besonders in Angu-land.

    
Volte 12.08.2016 16:11
quelle