requirejs定义模块不按预期工作

时间:2016-10-18 11:02:32

标签: javascript requirejs amd

我有以下情况:

我有一个名为fort的全局命名空间,它有一些我需要的常用功能,它看起来像这样:

fort.js

define("fort", ["fortHistory"], function (FortHistory) {

  function Fort(){}
    Fort.prototype.history = FortHistory;

    return Fort;
});

fortHistory是我创建的一个小模块:

fortHistory.js

"use strict";
define("fortHistory", function () {

function FortHistory() {

}
FortHistory.prototype.doSomething = function(){...}
return FortHistory;
});

然后我在config.js

中执行此操作
require.config( {
    enforceDefine: true,
    paths: {
        'fort': 'develop/js/fort',
        'fortHistory' : 'develop/js/webapp/fortHistory'
 },
    shim: {
        fort:{
            exports: 'fort'
        }
    }
} );
define( function() {} );

最后在main.js中我有:

define('fort', [], function(fort){
    window.fort = fort;
});

希望我可以打电话,如:

fort.fortHistory.doSomething();

而堡垒是未定义的所以我假设我误解了requirejs的工作方式

1 个答案:

答案 0 :(得分:1)

您已将其命名为history,而不是fortHistory

Fort.prototype.history = FortHistory;

尝试通过fort.history.doSomething();调用它。