Ich bin neu in angular js.Bitte schlagen Sie vor, welche besser ist. Ich habe eine Seite, auf der ich eine Anzahl von Kontrollkästchen auswählen und zur zweiten Seite navigieren kann. Ich möchte die überprüften Werte anzeigen, wenn ich im Browser die Zurück-Taste drücke. Welches ist besser mit $ rootScope oder stateparam oder localstorage.Bitte beachten Sie auch die Leistung.Halten Sie Daten zwischen den Seiten in eckigen js
Antwort
gehen durch die Optionen eins nach dem anderen:
$rootScope
: Sie sollten versuchen, diese Option zu verwenden zu vermeiden, da es zu den globalen Zustand zugeordnet ist. Verwenden Sie diese Option nur, wenn Sie möchten, dass die von Ihnen festgelegten Daten global in der gesamten App verfügbar sind und Sie die gleichen Variablennamen an keiner anderen Stelle wiederverwenden möchten.$stateParams
: Diese gehen normalerweise in den Status-URI als a dynamic part der gesamten URL. Dies hat nur eine begrenzte Verwendung und ist möglicherweise keine gute Idee für Ihren Anwendungsfall, in dem Sie Daten aus mehreren Kontrollkästchen speichern müssen.localStorage
: Dies ist langsamer als die Verwendung einer JavaScript-Variablen und damit not a good idea.
Dienstleistungen:
Hier ist eine bessere Lösung für Sie, ganz im AngularJS Paradigma: AngularJS services
Auszug aus dem Link in Punkt 3:
Daten sollte auch in Diensten gespeichert werden, außer wo es gebunden wird an die
$scope
. Services sind Singletons, die während der gesamten Lebensdauer der Anwendung bestehen, während Controller zwischen Anwendungsstatus transient sind. Wenn Daten in der Steuerung gespeichert werden, müssen sie bei der Wiederherstellung abgerufen werden. Auch wenn die Daten inlocalStorage
gespeichert sind, ist es um eine Größenordnung langsamer abzurufen als von mit einer Javascript-Variable.
Sie können den Service verwenden, um Ihre Daten in Ihrem Controller überall in der App einheitlich festzulegen und abzurufen. Hier
ist ein indikatives Beispiel:
app.factory('formDetails', formDetails);
function formDetails() {
var formData = {};
return {
getProperty: function() {
return formData;
},
setProperty: function(values) {
formData = values;
}
};
};
Verwenden Sie es in Ihrem Controller wie:
app.controller('MyController', [ '$scope', 'formDetails' , function($scope, formDetails) {
$scope.checkboxData = {};
// on load call service 'get' function
$scope.checkboxData = formDetails.getProperty();
// on some event/watch function call service 'set' function
formDetails.setProperty($scope.checkboxData);
}]);
- 1. Daten zwischen den Seiten richtig übergeben
- 2. Wie halten Sie die Daten auf Seiten in AngularJs auffrischen?
- 3. Halten Sie Recyclerview Daten zwischen Aktivitäten
- 4. teilen Daten zwischen Vorlagen in eckigen, wie?
- 5. Suchfeld in eckigen js
- 6. So halten Sie AzureRMAccount zwischen den Sitzungen
- 7. Render Teilansicht in eckigen JS
- 8. Kommunikation zwischen den Seiten
- 9. So navigieren Sie effektiv zwischen den Seiten
- 10. Rufen Sie externe js Datei Funktion in eckigen js Controller
- 11. Umsetzung der Werbe-Richtlinie in eckigen js
- 12. So implementieren Sie den vollen Kalender mit eckigen js
- 13. halten Zustand mit Feder zwischen den Anforderungen
- 14. Daten zwischen HTML-Seiten teilen
- 15. Halten Sie den Winkelregler dünn
- 16. .NET MVC und sichere Weitergabe von Daten zwischen den Seiten
- 17. eckigen UI-Router zwischen den Zuständen stecken
- 18. Wie bekomme ich Zwischenablage Daten in eckigen JS
- 19. Übergeben Sie einige Parameter zwischen den Seiten in UWP
- 20. Wie Daten zwischen zwei Formen (Komponenten) auf verschiedenen Seiten mit react js mit Meteor js übergeben?
- 21. Seitenumleitung funktioniert jetzt in eckigen js
- 22. Wie lade ich Daten aus eckigen Daten?
- 23. Senden von Daten zwischen PHP-Seiten
- 24. Uwp Anwendung Navigation zwischen den Seiten
- 25. PHP Session-Variable Änderungen zwischen den Seiten
- 26. Facebook Chatbox lädt nicht zwischen den Seiten
- 27. Sessionstatus nicht zwischen den Seiten gespeichert
- 28. So lösen Sie eine Tastatur Abkürzungsereignisse in eckigen js
- 29. Seitennavigation in asp.net MVC mit eckigen js
- 30. Daten zwischen Seiten mit jQuery Mobile übergeben?
Bitte suchen, bevor fragen .. Es gibt eine Menge von Fragen wie diese beantwortet : http://stackoverflow.com/questions/35410484/angular-use-root-scope-vs-services-to-share-data – developer033
Ich denke, OP's Frage ist etwas anders; localStorage vs $ rootScope sind sehr unterschiedliche Dinge. Aber, tldr, sollten Sie den Gültigkeitsbereich verwenden, es sei denn, Sie wollen Semi-Permanence von localStorage (Zustand in neuen Tabs beibehalten, am nächsten Tag usw.). Die Antworten auf den Link von developer033 sind also gute Antworten. Perf wird in beiden Fällen in Ordnung sein. –