Ich bin neu in Angular / Ionic. Bevor ich Angular / Ionic nutzte, überprüfte ich beim Start meiner App, ob wir unter Phonegap oder einem Browser waren, der diese Informationen in einer globalen booleschen Variablen benutzte und dann abtastete, ob die App online oder offline war und sie in einem globalen speicherte Variable auch, wie folgt:
%Vor%Nun möchte ich das gleiche mit Angular / Ionic machen, ich verstehe, dass ich einen "Service" verwenden muss. Aber ist es der beste Weg, diese Informationen über den gesamten Code verfügbar zu machen?
Ich mache folgendes, aber ist es das "beste Verfahren"?
in index.html:
%Vor%in services.js:
%Vor%in app.js:
%Vor% Das funktioniert jetzt, aber ich brauche den booleschen isPhoneGap
überall dort, wo ich ihn brauche (fast überall in meiner App).
Können Sie die Best Practice anwenden, um dies zu tun?
Danke
Sie sollten keine Variablen mit $rootScope
setzen und versuchen, $scope
so weit wie möglich zu vermeiden. Die Verwendung von LocalStorage
ist in Ordnung, aber diese Daten bleiben bestehen. Ich würde empfehlen, eine Factory zum Speichern und Abrufen von Variablen mit SessionStorage
einzurichten. SessionStorage
ist an die geöffnete Registerkarte gebunden, daher sind die Daten beim Schließen geschlossen.
Dies ist einer meiner Sitzungsspeicherdienste. Ich werfe $cookieStorage
, falls der lokale Speicher nicht verfügbar ist. Außerdem kann localStorage nur Zeichenfolgen speichern. Aus diesem Grund werden Sie Objekte und Arrays nach Bedarf von und nach JSON konvertieren. Nach dem Eingeben von sessionService
muss ich nur sessionService.store(name, data)
aufrufen, um eine Sitzungsvariable zu speichern, oder sessionService.persist(name, data)
, um persistente Daten zu speichern, d. H. UserName, wenn "Remember Me" angekreuzt ist. :
$ cookieStore ist Teil von ngCookies. Stellen Sie sicher, dass angular-cookies.js enthalten sind und laden Sie ngCookies wie jedes andere Modul. Angular ngCookies
Zunächst einmal bin ich ziemlich neu bei Ionic und Angular, aber ich hatte das gleiche Problem mit meiner Web App Angular und ich habe folgendes getan, um es zum Laufen zu bringen.
weist $rootScope
Variablen zu, so dass es für alle Controller sichtbar ist
weist $scope
Variablen zu, die für den aktuellen Kontext sichtbar sind. Ex: Controller und die HTML-Seiten verwenden diesen Controller
localStorageService , da dies die Werte enthält, selbst nachdem der Benutzer die Seite aktualisiert hat.
Bitte beachten Sie, dies ist, was ich in meiner Angular Web App gemacht habe und vielleicht nicht die Best Practices, aber ich hoffe, Sie haben die Idee.
Tags und Links angularjs ionic-framework