SweetAlert2, .then () - DOM nicht sofort aktualisieren

8

DAS PROBLEM:
Ich möchte einen Benutzer auf eine andere Seite umleiten, nachdem ich in der Warnmeldung auf OK geklickt habe, aber der Benutzer wird nicht umgeleitet, bis ich aus irgendeinem Grund eine weitere süße Warnmeldung öffne.
Sie können einen Haltepunkt über den Code setzen, aber auf der Seite passiert nichts.

Einfaches Beispiel für das Problem: Ссылка

HINWEIS : Ein Timeout von 0 Sekunden "behebt das Problem"

Zum Reproduzieren:
1) Beachten Sie den Text nach dem Pfeil .. $ scope.name="original", und Sie können sehen, dass es auf der Seite angezeigt wird.
2) Klicken Sie auf die Schaltfläche "zuerst klicken". Dies führt die Funktion $ scope.changeMe () aus, die $ scope.name auf "delayed ..." aktualisiert 3) Inzwischen sollte der Text über den Schaltflächen geändert worden sein. Aber erst wenn du eine weitere süße Warnung öffnest, ändert sich der Text tatsächlich 4) Klicken Sie auf die Schaltfläche "Dann hier" oder "Zuerst klicken", so dass eine weitere süße Warnung erscheint und das DOM sich schließlich ändert.

Ich bin mir ziemlich sicher, dass dies irgendwie mit AngularJS zusammenhängt, und 1.4.3 muss verwendet werden.

Irgendwelche Ideen?

HTML:

%Vor%

JS:

%Vor%     
Sergnio 21.09.2017, 19:26
quelle

1 Antwort

1

Ich sehe einige Probleme in deiner Geige

1) swal ist keine eckige Bibliothek. Es funktioniert also nicht zusammen mit dem eckigen Digest-Zyklus, weshalb es erst nach dem Aufruf von $ timeout funktioniert. Dieses Tutorial erklärt, warum und wie Sie es beheben können.

2) Ich sehe, dass Sie ng sweet alert als Abhängigkeit hinzugefügt haben, aber das heißt vor eckig, also nicht nicht in deiner Geige registrieren und es gibt einen Konsolenfehler.

3) Wenn Sie versuchen, ng-sweet-alert zu verwenden, wird diese Syntax nicht verwendet. Sie müssen es zuerst in die Abhängigkeit einfügen

%Vor%

Und es gibt kein Versprechen und es muss anders benannt werden.

%Vor%     
Shyam Babu 21.09.2017, 21:24
quelle