我有以下情况:
我有一个名为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的工作方式
最佳答案
您已将其命名为history
,而不是fortHistory
:
Fort.prototype.history = FortHistory;
尝试通过
fort.history.doSomething();
调用它。