Ich versuche zu tun, was im Wesentlichen hier beantwortet wurde Unable modales Bootstrap-Fenster als eine Route zu öffnen
Aber meine Lösung wird einfach nicht funktionieren. Ich erhalte einen Fehler
Error: [$injector:unpr] Unknown provider: $modalProvider <- $modal
Ich habe meinen Controller auf Folgendes reduziert:
%Vor%Letztlich hoffe ich erreichen zu können, dass wenn ein Login erforderlich ist, ich nicht auf die Login-Seite gehe, sondern einen Dialog erstelle.
Ich habe auch versucht, die Funktion onEnter
in der Methode ui-router
state zu verwenden. Das funktioniert auch nicht.
Irgendwelche Ideen?
AKTUALISIEREN
Ok - so wie es sich herausstellt, bricht ui-bootstrap.js UND ui-bootstrap-tpls dies - Nach dem Lesen der Dokumente dachte ich, dass Sie die Vorlagen benötigen, um mit dem ui-bootstrap zu arbeiten. obwohl es scheint, dass alle Plunker nur in der ..tpls-Datei laden - sobald ich die ui-bootstrap-Datei entfernt habe, funktioniert mein Modal ... Bin ich blind? oder sagt es nicht wirklich, welches du in den docs auf github brauchst? -
Jetzt muss ich nur herausfinden, wie ich verhindern kann, dass meine URL tatsächlich zu / login geht, anstatt nur das modale anzuzeigen:)
update 2
Ok, also indem ich $ state.go ('login') in einem Service anrufe macht das für mich.
Hi, ich hatte Schwierigkeiten, das ähnliche Problem zu überwinden. Ich konnte es jedoch lösen. Dies ist, was Sie wahrscheinlich brauchen würden.
%Vor%Klicken Sie hier für Plunker. Hoffe es hilft.
Ich arbeite an etwas ähnlichem und das ist meine Lösung.
HTML-Code
%Vor%Statuskonfiguration
%Vor%Heimsteuerung
%Vor%Zum Schluss der modale Instanz-Controller. Dieser Controller synchronisiert die modalen Ereignisse (Öffnen / Schließen) mit URL-Pfadänderungen.
%Vor% Sie können einen Zustand mit demselben templateUrl
und controller
als Ihre Seite erstellen, auf der Sie das Modal anzeigen möchten, indem Sie ihm das Objekt params
hinzufügen
Und im Controller der Seite verwenden Sie diesen Parameter, um das modale
zu öffnen %Vor% Ich habe einen praktischen Hinweis gefunden, damit das funktioniert. Es gibt wahrscheinlich Vorbehalte, aber es funktioniert für mich. Sie können eine result
noch übergeben, aber ich brauche keine.
Die Verwendung von finally
anstelle von then
promise hat das für mich sortiert. Ich musste auch den vorherigen Zustand auf rootScope speichern, damit wir wussten, worauf wir zurückgehen sollten.
Speichern Sie den vorherigen Status in $ rootScope
%Vor%Geben Sie mit onEnter
an %Vor%Tags und Links javascript angularjs angular-ui-router angular-ui-bootstrap