繁体   English   中英

在AMD上使用Marionette.module

[英]Usage Marionette.module with AMD

我想在新项目中使用Coffee + Marionette + Require.js,但是模块加载查询存在问题。 模块将在主应用启动回调后启动;

# 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

如果要在初始化程序中使用模块,我该如何定义模块?

木偶模块系统旨在作为require.js的简单替代方案。 我不鼓励同时使用这两种方法,因为您将一直遇到循环依赖问题,尤其是如果您希望有一个“每个文件一个类”的组织。 请注意,requirejs为您提供了木偶模块所做的一切以及更多,更多(异步加载,项目构建等)。

从木偶文档中获得更多阅读

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM