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