У меня очень странная и неприятная проблема с 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, и в справочной системе поиска то же самое. Странно, что теперь, когда я упростил этот пример, он кажется довольно случайным, который он выбирает. В большинстве случаев это поисковая система, но каждые несколько обновлений он будет дома.
У кого-нибудь есть идеи? Это что-то ужасно очевидно?
EDIT: упрощенный пример и предоставлен весь источник модуля.
Это ваш полный 'requirejs.config'? Можете ли вы отобразить файлы в поисковой, домашней и учетной записи? –
@PaulGrime, вопрос был изменен – JoeyP