我对RequireJS有一个非常奇怪和令人沮丧的问题。当我调用具有一系列依赖项的模块时,回调中可用的所有依赖项引用一个模块。这可能是与代码更容易解释:RequireJS定义回调返回错误的模块依赖关系
包括require.js脚本(没有数据主要属性)
<script type="text/javascript" src="/js/common/require.min.js" ></script>
下面,我包括我的要求main.js(在网站的所有网页中使用)在回调中需要我的页面特定的js。
<script type="text/javascript">
require(['/js/require/main.js'], function() {
require(['page/home_page']);
});
</script>
main.js
requirejs.config({
baseUrl: 'js/require'
});
requirejs(['base'],
function() {
var base = require('base');
base.init();
});
home_page.js
define(['home','searchbar'], function (home,searchbar){
console.log(home.init == searchbar.init); // This is always true !!!
home.init();
searchbar.init();
});
home.js
define(function(){
this.init = function(){
console.log('in home page');
}
return this;
});
searchbar.js
define(function(){
this.init = function(){
console.log('Now in the searchbar init')
}
return this;
});
问题出在home_page.js模块home和searchbar引用同样的东西。奇怪的是,现在我已经简化了这个例子,它看起来很随机,它选择了哪一个。大多数时候它是搜索栏,但每隔几次刷新它就会回家。
任何人有想法?这件事显而易见吗?
编辑:简化的例子,并提供所有模块的来源。
那是你的全'requirejs.config'?你可以显示搜索栏,家庭和帐户模块文件? – 2013-04-25 06:34:58
@PaulGrime,问题已修改 – JoeyP 2013-04-25 21:55:21