如何将此模块模式转换为require.js?

时间:2013-04-18 14:29:28

标签: javascript module requirejs

我在我的javascript中创建了一个模块模式,所以我可以随时创建模块并使用它们。 但我不知道如何将其转换为Require.js。每个模块,即Trades.toggleMenu,Trades.tabs等,通常都在单独的文件中。但我只是把它们包括在这里,以便将故事简化为SO。请帮忙:

JS:

(function (window, $) {

  var Trades = (function(Trades) {

    // All modules should be initialised here. For produdction, use a module dependency library, e.g. require.js
    Trades.main = function() {

        this.toggleMenu();
        this.validation.run($('#registration-form, #homeowner-login-form, #tradesmen-login-form'));
        this.tabs();

    };

    Trades.toggleMenu = function() {

    };

    Trades.tabs = function(el) {

    };

    Trades.vaildation = function(el) {
        return {

            run: function (formName) {
                //do something...
            }

        };
    };

    return Trades;

  }(Trades || {}));

  window.Trades = Trades;

  $(function() { Trades.main(); });

}(window, jQuery));

非常感谢

1 个答案:

答案 0 :(得分:3)

您将拥有一个名为Trades.js的文件,用于定义“交易”模块:

define(["jquery"], function ($) {

    var Trades = (function(Trades) {
        ...
        return Trades;
    }(Trades || {}));

    return Trades;

});

你会按如下方式使用它:

require(["jquery", "Trades"], function ($, Trades) {

    $(function() {
        Trades.main();
    });

});

jQuery将通过使用RequireJS / jQuery组合文件(http://requirejs.org/docs/jquery.html#get)或通过定义jquery的路径(如此答案(Require.JS shim config global scope?))配置为模块。