bedingt bootstrap app in angularjs

8

Ich habe eine angularJs Web-App, die Google Maps API v3 verwendet. Ich benutze ui-map von angular-ui.

Mein Problem ist, dass die App mit schlechter Konnektivität funktionieren muss. Ich habe offline Speicher gut funktioniert.

Das Problem ist, dass ui-map Google Maps vor dem Laden des eckigen Moduls wie folgt laden muss:

%Vor%

... wobei onGoogleReady () der Google Maps API Callback ist.

Dies wirft den Offline-Modus aus dem Fenster, da die App nicht geladen wird, bis Google Maps geladen wird und das nicht offline geschieht.

Wie kann ich die App mit oder ohne ui-map abhängig davon laden, ob eine Verbindung besteht oder nicht?

Ich habe versucht zu laufen:

%Vor%

und dann

%Vor%

lädt es erneut mit ui-map, wenn Maps geladen werden, aber anuglar nicht mehr an dasselbe Element binden kann.

Ich bin mir sicher, dass es einen schönen, sauberen Weg dafür gibt, aber mein angulares Verständnis fehlt ...

UPDATE: Hier ist die Lösung, die ich gefunden habe:

Binde die App zunächst nicht in das HTML ein (keine ng-app) Als nächstes haben Sie eine Online-Variable:

%Vor%

Dann überprüfen Sie, ob online. Wenn dies der Fall ist, fügen Sie das Google Maps-Skript ein, das den Callback mit ui-maps ausführt, falls nicht, binden Sie die App ohne ui-maps ein:

%Vor%     
user2890027 19.11.2013, 09:30
quelle

2 Antworten

0

Denken Sie wahrscheinlich darüber nach, RequireJS zu verwenden. Und füge eine Fallback-Methode hinzu, wenn Karten nicht geladen werden könnten?

    
iuriisusuk 20.01.2014 09:58
quelle
-1

Vor einiger Zeit habe ich einen Service für mein persönliches Projekt erstellt. überprüfen Sie es vielleicht kann Ihnen helfen.

Ссылка

    
Saul Burgos 26.01.2017 15:18
quelle

Tags und Links