requirejs 定义模块未按预期工作
requirejs defining modules not working as expected
我有以下场景:
我有一个名为 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();
调用它。
我有以下场景:
我有一个名为 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();
调用它。