Erfordert js backbone JS globale Modelle

7

Ich möchte ein UserSession-Modell erstellen, das die Sitzungs-ID mithilfe des jQuery-Cookie-Plugins lädt und in einem Cookie speichert.

Dies ist mein Code für mein UserSession-Modellmodul:

%Vor%

Aber sagen wir, ich möchte darauf in meine Login-Ansicht zugreifen:

%Vor%

Die Sache ist jedes Mal, wenn ich auf das UserSession-Modell in Modulen zugreife (siehe die Rückruffunktion von model.save success), es benutzt Standardwerte, also muss ich eine Art Singleton-Instanz des UserSession-Modells haben, wie kann ich das machen Dies?

Meine erste Idee war, den App-Namespace so in unserer main.js zu verwenden (erstes Hauptmodul, das geladen wird) und dort das UserSession-Modul zu initialisieren, und jedes Mal, wenn ein anderes Modul auf dieses Modul zugreift, muss das Hauptmodul a Objekt, das die UserSession-Instanz zurückgibt.

Wie kann das am besten gemacht werden?

Danke

    
onlineracoon 29.05.2012, 15:57
quelle

1 Antwort

21

Angenommen, Sie möchten eine einzige globale UserSession für Ihre gesamte Anwendung, dann würde ich einfach eine instanziierte UserSession vom UserSession-Modul zurückgeben. Auf diese Weise erhalten Sie dasselbe Objekt zurück, wenn Sie UserSession in einem Definitionsaufruf verwenden. Zum Beispiel

%Vor%

Dann woanders:

%Vor%

Require.js sollte das UserSession-Modul nur einmal ausführen, unabhängig davon, wie oft es an anderer Stelle verwendet wird. Daher ist das UserSession-Objekt, das Sie dort instanziieren, effektiv ein Singleton.

    
obmarg 29.05.2012, 16:08
quelle