我正在使用requireJS,我想從中訪問特定的模塊。不幸的是,我總是收到一個404消息,說明該模塊未找到。RequireJS配置忽略內聯需要調用後面的腳本標記加載我的應用程序
我包括我的js文件所在的路徑配置位於這樣的:
<script src="/js/shop2/springen/vendor/require.min.js" data-main="/js/shop2/springen/app" async></script>
我app.js看起來是這樣的:
define('jquery', [], function() {
return jQuery;
});
requirejs.config({
baseUrl: '/js/shop2/springen/',
paths: {
'lodash': 'vendor/lodash.min',
'Functions': 'app/modules/functions',
'Search': 'app/modules/search',
'Comparison': 'app/modules/comparison',
'Globals': 'app/globals',
'Init': 'app/init',
...
}
});
// globals get loaded first and are available to all subordered scripts
require(['Globals', 'lodash'], function() {
$(document).ready(function() {
if ($('#comparison').length) {
require(['Comparison'], function (Comparison) {
Comparison.init();
});
} else {
require(['Init']);
}
});
});
現在我的問題是,我需要設置我搜索模塊內聯,因爲我必須在服務器端生成翻譯並用此初始化它:
<script type="text/javascript">
$(document).ready(function(){
require(['Search'], function() {
$('#q').shopIncrementalSearch({
resultsDiv: $('#lifesearch'),
defaultTitle: 'drücken Sie die Eingabetaste, um',
defaultText: 'Alle Ergebnisse anzeigen',
searchingText: 'Suche ...',
dataUrl: 'http://SRV-CACHE01',
language: 'de',
countryId: 1,
portalId: 22,
isErpPortal: false,
sectorId: null
});
});
});
</script>
不幸的是,我收到一條錯誤消息,說沒有找到該文件。 DOM準備好後,我不能訪問requireJS模塊嗎?奇怪的是,所有加載的模塊的路徑(一些模塊因爲JS錯誤我沒有加載)被正確設置。只是搜索模塊看起來像這樣:/js/shop2/springen/Search.js 404 (Not Found)
任何建議我做錯了什麼?
編輯
我記錄下我的內聯JavaScript的面前: console.log(typeof require);
並返回我function
所以需要加載,但路徑沒有設置。爲什麼?
非常感謝路易斯! – enyce12
如何被載入這個力的「內聯需要搜索模塊邏輯」等待搜索模塊?我的主要js文件包括「requirejs.config」對象,並使用jQuery一個定義呼叫包括在內,以便它加載的網站範圍的效用。如果有人將腳本標記添加到帶有jquery選擇器的頁面,是否可以阻止它執行,直到mainjs加載jquery? –