Szenario: Ich habe eine AngularJS App, die Googles Auth. Verwendet.Wie wird ein AngularJS-Ereignis aus einem Popup ausgegeben?
Abhängig von der Ressource, wenn Angular (mein) Backend aufruft, kann es eine Antwort zurückgeben, die nach einem Oauth-Token fragt. In diesem Fall zeigt Angular mit dieser Weiterleitungs-URL ein Popup-Fenster (nicht das modale Dialogfeld des Bootstrap) an.
Google wird authentifiziert, um Erlaubnis gefragt und sendet den Benutzer an mich zurück. Es gibt eine Rückruf-URL, die den 'Code' verarbeitet und das echte Token abruft. Diese callbak URL wird in diesem Popup aufgerufen.
Wenn ich das Token zu erhalten, soll das Fenster selbst schließen, und benachrichtigt Angular die letzte Anfrage erneut versuchen (jetzt habe ich das Token in der Sitzung des Benutzers)
Problem: Wie kann ein Popup emittiert eine Angular Veranstaltung?
Eigentlich muss es nicht $rootScope.$emit
sein, aber nur eine Möglichkeit, Angular zu benachrichtigen.
Ich sah this option, aber es scheint nicht gut für Angular :(
Sind Sie sicher? Der Angular-Dienst wird * Singleton * zwischen zwei Browserfenstern fortsetzen? – Falci
Oh, so muss es Singleton zwischen Windows sein, die in der Frage nicht klar war.Verwenden Sie das [ng-Speicher] (https://github.com/gsklee/ngStorage) Modul, verwenden Sie die 'set' Methode zu setzen es zu speichern und die "Get" -Methode, um es wiederzuerlangen –