Dependencias circulares para una aplicación web usando backbone.marionette y requireJs

Estoy en la siguiente situación.

Estoy utilizando requireJs para cargar el módulo y no quiero usar variables globales.

El main.js es responsable de cargar el enrutador.
Luego, el enrutador carga la aplicación y la aplicación carga varias subApps.

Después de que todo se haya inicializado, las subapps necesitan elrouter para hacerrouter.navigate.

Aquí el esquema:

main.js -> router -> app -> subApp -> router

Luego tengo un problema de dependencias circulares y, por esa razón, el enrutador en la subApp no ​​estará definido.

¿Cuál es la mejor manera de reorganizar mi código o de solucionar este problema? ¿Hay algún ejemplo sobre esto?

Respuestas a la pregunta(3)

Su respuesta a la pregunta