Я делаю приложение Marionette для загрузки файлов, и я в самом начале его. Для того, чтобы начать вещи, я покажу вам файлы я работаю с:Субмодуль становится «неопределенным» в Backbone.Marionette app
upload_view.js
AppManager.module("PrimaryApp.Upload", function(Upload, AppManager, Backbone, Marionette, $, _){
Upload.UploadPage = Marionette.ItemView.extend({
template: "#upload-template"
});
});
upload_controller.js
AppManager.module("PrimaryApp.Upload", function(Upload, AppManager, Backbone, Marionette, $, _){
Upload.Controller = {
show: function(){
var uploadView = new Upload.UploadPage();
AppManager.regions.primary.show(uploadView);
},
};
});
app.js
var AppManager = new Marionette.Application();
AppManager.on("before:start", function() {
var RegionContainer = Marionette.LayoutView.extend({
el: "#app-container",
regions: {
primary: "#primary-region",
secondary: "#secondary-region",
header: "#header-region"
}
});
AppManager.regions = new RegionContainer();
});
AppManager.on("start", function(){
console.log(AppManager);
AppManager.PrimaryApp.Upload.Controller.show();
})
AppManager.start();
При запуске этого приложения в браузере, я получаю эту ошибку:
Uncaught TypeError: Cannot read property 'Upload' of undefined
Для этой строки кода в app.js:
AppManager.PrimaryApp.Upload.Controller.show();
Однако, когда я выход AppManager на консоль я получаю это :
это показывает, что AppManager.PrimaryApp действительно определено и содержит все подмодули пе EDED. Любые идеи, почему мой AppManager.PrimaryApp не определен, когда вызывается как функция, но затем определяется, когда выводится на консоль?