2017-06-14 1 views
1

In meiner AngularJS-Anwendung kommunizieren zwei Windows über localStorage, um eine einzelne Websocket-Verbindung zu verwenden. Das Hauptfenster überwacht Nachrichten vom Server, die eingehende Daten in eine localStorage-Eigenschaft einfügen. Das untergeordnete Fenster verwendet eine eckige $ watch-Eigenschaft für diese Eigenschaft, um eingehende Daten in ein Raster einzutragen. Die Verwendung von verschiedenen Fenstern und einer einzelnen Verbindung ist eine Voraussetzung.AngularJs App kann lokale Änderungen nicht abhören von einem anderen Fenster

Das Problem ist, dass der Controller des untergeordneten Fensters scheint nicht in der Lage sein, die localStorage -Eigenschaft zu sehen, bis das Browser-Entwicklungstool (F12) nicht geöffnet ist.

Wie kann ich dieses Problem beheben?

+0

Sorry, wenn diese Frage dumm ist; aber sind beide Fenster vom selben Ursprung? – aorfevre

+0

Wie verwalten Sie Ihren Speicher? Benutzt du ngStorage? oder direkt js Speicher – aorfevre

+0

Könnten Sie teilen $ Watch Funktion –

Antwort

1

Ich habe ein eckiges Projekt, das auch localstorage und localforage.js verwendet. Diese Aussage verengt Ihr Problem wirklich auf die Entwicklungstools, nein ?:

"bis das Browser-Entwicklungstool (F12) nicht geöffnet ist."

Vergewissern Sie sich, dass dieses Kontrollkästchen deaktiviert ist.

enter image description here

die Seite neu laden und erneut versuchen.

Oder Sie könnten diese Lösung versuchen: Using localstorage checks in a different windowwindow.postMessage()

Unser QA-Team mit meldet mehrere Fehler von stammen zwei Fenster mit localstorage offen ist, so dass der Datenzugriff hat eng synchronisiert werden. Das untergeordnete Fenster würde also Daten an das übergeordnete Element senden, das mit dem lokalen Speicher umgehen würde.

+0

Vielen Dank, aber die Deaktivierung von "Disable check" hat nicht funktioniert. Ich werde besser erklären: Wenn ich das untergeordnete Fenster öffne, wird das Gitter mit den Daten innerhalb des localStorage gefüllt, aber es kann die Updates nicht erhalten. Wenn ich dann das Entwicklerwerkzeug öffne, beginnt es, die Aktualisierungen zu erhalten. Wenn ich dann den Fokus des untergeordneten Fensters verliere, erhält es die Aktualisierungen nicht. Wenn ich die Entwicklerwerkzeuge wieder öffne, fängt es an, wieder zu arbeiten. – retrobitguy

+0

ist es möglich, dass Sie den gleichen Fehler haben, wie hier erwähnt ?: https://Stackoverflow.com/a/42975984/6254070 Welchen Browser benutzen Sie? – smurtagh

+0

Danke! Die postMessage() Lösung hat funktioniert. – retrobitguy

Verwandte Themen