2013-09-27 4 views
0

Я хочу использовать в своем новом проекте Coffee + Marionette + Require.js, , но у меня проблема с запросом загрузки модулей. Модуль начнется после того, как основное приложение начнет обратный вызов;Использование Marionette.module с AMD

# main.coffee 
require.config 
    paths: 
     # ... 
     app: '/js/app/app' 
     marionette: '/js/vendors/backbone.marionette' 
    shim: 
     # ... 
     'marionette': 
      deps: ['backbone'] 
      exports: 'Marionette' 
     'app': 
      deps: ['marionette'] 
      exports: 'App' 


require ['app'], (App) -> 
    App.start() 


# module.coffee 
define ['app'], (App) -> 
    MyModule = App.module('MyModule'); 
    MyModule.foo = -> 
     console.log 'bar' 
    return MyModule 


# app.coffee 
define (require) -> 
    App = new Marionette.Application 
    App.addInitializer -> 
     require 'module' 
     console.log 'App inited' 

    App.on 
     'start': -> 
      console.log 'App started' 

    return App 


# Output 
App inited 
App started 
Module inited 

Как определить модуль, если я хочу использовать его в инициализаторах?

ответ

0

Модульная модульная система Marionette предназначена для простой альтернативы require.js. Я бы отказался от использования обоих вместе, потому что вы будете сталкиваться с проблемами циклических зависимостей все время, особенно если вы хотите создать организацию «один класс на файл». Обратите внимание, что requirejs дает вам все, что делает марионеточные модули + намного, гораздо больше (асинхронная загрузка, построение проекта и т. Д.).

Некоторые более чтение из кукольного документации

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