Я пытаюсь найти лучший способ получить экземпляр приложения Marionette во всем приложении. Я использую requirejs, однако я не могу понять, можно ли захватить фактический экземпляр приложения через require.Каков правильный способ получить экземпляр приложения Marionette внутри представления?
Я использовал Backbone.Wreqr.EventAggregator и обратные вызовы, чтобы захватить экземпляр приложения, однако он чувствует себя очень грязным.
Я также хотел бы избежать передачи экземпляра приложения через конструкторы моих различных видов, так как я считаю, что должен быть лучший способ.
Это в нижней части моего файла данных магистральный:
define('MyApp', ['App'], function (App) {
return new App();
});
require(['MyApp'], function (app) {
app.start();
Backbone.history.start({
pushState: true
});
});
Этот код прекрасно работает и загружается приложение, однако в моих взглядах подразделам и других компонентов приложение заканчивает тем, что не определено. Например приложение не определено в этом сценарии:
define([
'marionette',
'../controllers/Controller',
'MyApp'
], function (Marionette, Controller, app) {
var controller = new Controller();
var Router = new Marionette.AppRouter({
controller: controller,
appRoutes: {
'home' : 'showUserHome'
}
});
return Router;
});
Я думаю, что я сузил свою проблему, чтобы быть циклической зависимостью от моего маршрутизатора ... Я буду копать. Большое спасибо за пример кода! – Feek