2013-09-27 19 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爲您提供了所有牽線木偶模塊的功能,還有更多功能(異步加載,項目構建等)。

從木偶文檔

一些更多的閱讀