0

Jeder appcelerator Titan Entwickler hier :)? Auf meiner App Mobile habe ich eine klassische Login/Logout-Seite, beim Login habe ich eine globale Variable "Alloy.Globals.user" erstellt, die alle User-Objekte (Name, Foto etc ...) enthält, ich habe auch einige App-Eigenschaften (Ti.app.properties). Wenn ein personne Abmeldung aus der App, ich will alle Globals Variablen und Eigenschaften zerstören, ich habe tatsächlich:Titan appcelerator löschen alle globalen Variablen beim Abmelden

$.logout.addEventListener("click",function(e){ 
    Alloy.Globals.user = {}; 
    Alloy.Globals.user = null; 
    Ti.app.properties.removeProperty("property_name") 
}) 

Aber wenn ein anderer Benutzer auf dem gleichen Gerät anmelden, manchmal vorherigen Benutzer Informationen noch als neuer Benutzer angezeigt Profil.

Wie soll ich damit umgehen?

Vielen Dank.

Antwort

2

Erstens, speichern Sie nichts in Globals. Es ist möglich, aber schlechte Praxis. Sie können eine lib verwenden und die Informationen dort speichern.

Aber das gesagt, das Zurücksetzen der globalen Variable sollte den Trick tun. Ihre addEventListener tut jedoch überhaupt nichts. Was soll es tun?

addEventListener erfordert 2 Eigenschaften. Das erste ist das zu hörende Ereignis und das zweite die Funktion, die aufgerufen wird, wenn dieses spezifische Ereignis ausgelöst wird. Angenommen, $.logout ist eine Schaltfläche, sollten Sie tun $.logout.addEventListener('click',function(){});

Auch, wenn Sie die Benutzerinformationen in, sagen wir, ein Fenster angezeigt haben. Sie müssen dieses Fenster entfernen und aus dem Speicher löschen. Die angezeigten Informationen werden nicht entfernt, wenn Sie die Informationen selbst entfernen. Es ist im Grunde eine Wiedergabe dessen, was Sie zu der Zeit hatten, als es gerendert wurde. Entfernen Sie daher alle Oberflächenelemente, die Informationen anzeigen, und entfernen Sie alle Dateneigenschaften, wenn Sie sich vom Benutzer abmelden möchten. Das sollte den Trick machen.

Wie zu verwenden lib?

lib ist ein Ordner innerhalb app. Wenn Sie es nicht haben, erstellen Sie es. In diesem Ordner können Sie Dateien erstellen, die "Dinge erledigen". Variablen innerhalb einer Lib-Datei werden während der Sitzung wie eine globale Variable gespeichert. Nur, es ist nicht im globalen Namespace.

lib Dateien sind commonjs Dateien. Sie können lib-Dateien unter Verwendung von require('myLibFile') einfügen, ohne die Erweiterung .js hinzuzufügen. Speichern Sie das Ergebnis auch nicht auf einem Global, sondern nur dort, wo Sie es brauchen und die Variablen werden da sein.

+0

Sorry, ich habe den Klick des Ereignis-Listeners vergessen, ja, ich habe einen Klick auf dieses Ereignis (ich werde den Beitrag modifizieren), trotzdem danke für deine Antwort, die mir sehr hilft Ich denke, könntest du mir einfach erklären " lib "und speichert Informationen dort?, danke – user44321

+0

hat es hinzugefügt! Google für wie commonjs funktioniert, wenn Sie nicht wissen;) –

+0

Hallo, vielen Dank für die Hilfe, ich werde es überprüfen – user44321

Verwandte Themen