我對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