2015-02-19 3 views
0

Я пытаюсь настроить новое приложение с использованием Backbone.Marionette и RequireJS. Я следую вместе с enzo's guide, чтобы настроить мои маршрутизаторы и контроллеры, но я получаю следующую ошибку: «Undefined is not a function» при попытке создать экземпляр контроллера.Магистральная магистраль и RequireJS

require(['marionette', './assets/js/router', './assets/js/routeController'], function (Marionette, Router, routeController) { 

    var MyApp = new Backbone.Marionette.Application(); 

    var controller = new routeController({}); 

И если я наводил курсор на routeController в функции paramater, отображается как «неопределенный».

Что я делаю неправильно? Это сводит меня с ума.

Edit: Файл routeController является следующим образом-

define(["marionette"], function (Marionette) { 

    var Controller = Backbone.Marionette.Controller.extend({ 
    initialize : function(options) { 

    }, 
    start: function() { 

    }, 

    home : function() { 
     alert('Hello, welcome home!'); 
    }, 
}); 

return Controller; 

});

+0

Какой у вас файл управленияController? – ne8il

+0

@ ne8il Я обновил сообщение с кодом routeController, который идентичен коду, указанному в руководстве, которое я связал. – Morgan

+0

Вам не нужно делать «Backbone.Marionette», если вы определяете Marionette как модуль AMD, просто используйте «Marionette.» ' –

ответ

0

Когда вы получаете null при запросе модуль из RequireJS, есть два типичных варианта:

1) Модуль быть необходимые в не возвращает что-то

ли Controller ненулевым в routeController.js? Выбросьте отладчик там, чтобы убедиться.

2) Существует циклическая зависимость где

Это достаточно легко создать круговую зависимость где-то в ваших модулей. Не похоже, что это так, но может случиться, если router.js делает что-то фанки.

Смежные вопросы