Circular Abhängigkeiten für eine Web-App mit backbone.marionette und requireJs

8

Ich bin in der folgenden Situation.

Ich verwende requireJs, um Modul zu laden, und ich möchte keine globalen Variablen verwenden.

Die main.js ist dafür verantwortlich, den Router zu laden.
Dann lädt der Router die App und die App lädt mehrere SubApps.

Nachdem alles initialisiert wurde, benötigt die SubApps router , um router.navigate zu erstellen.

Hier das Schema:

%Vor%

Dann habe ich ein Problem mit zirkulären Abhängigkeiten und aus diesem Grund ist der Router in subApp nicht definiert.

Was ist der beste Weg, meinen Code zu reorganisieren oder dieses Problem zu beheben? Gibt es ein Beispiel dafür?

    
Lorraine Bernard 29.06.2012, 16:11
quelle

3 Antworten

5

das Schema:

%Vor%

hat Recht.

Wenn Sie backbone.marionette verwenden, um Zugriff auf den Router von der App und SubApp, ohne global var zu verwenden, sollten Sie die App im Router auf diese Weise starten:

%Vor% %Vor%     
antonjs 03.07.2012, 07:35
quelle
2

Subapp kann Ereignisse auslösen, die der Router handhabt, anstatt eine explizite Abhängigkeit vom Router zu haben

    
Robert Levy 29.06.2012 22:48
quelle
2

In meinem Projekt verwende ich die folgende Abhängigkeit: main.js - & gt; App - & gt; Router - & gt; Unteranwendung.

In app.js erstelle ich eine einzelne globale Variable, die einen Zeiger auf meine App enthält:

%Vor%

Dies macht es extrem einfach, von überall auf die Regionen meiner App zuzugreifen und globale Statusinformationen in einem Namensraum zu speichern.

Ich habe es zuerst ohne die globale App versucht, aber letztendlich aufgegeben und fand diesen Ansatz viel flexibler.

    
Tony Abou-Assaleh 30.06.2012 20:59
quelle