使用requirejs我的main.js看起来像这样
requirejs.config({
baseUrl: '/javascript/',
paths: {
jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min',
async: 'requirePlugins/async',
hbs: 'hbs'
},
waitSeconds: 7
});
define(['common'], function () {
loadFonts();
});
Run Code Online (Sandbox Code Playgroud)
main.js包含在脚本调用的页面中
<script data-main="/javascript/main.js" src="/javascript/require-2.0.1.js"></script>
Run Code Online (Sandbox Code Playgroud)
Common是网站的基本功能,jquery doc ready函数等包含在define调用中:
define(['jquery'], function() {
//jQuery dependant common code
});
Run Code Online (Sandbox Code Playgroud)
这很好用,从谷歌CDN加载jQuery并执行代码.但是当我在加载main.js之后添加一个require调用时
<script data-main="/javascript/main.js" src="/javascript/require-2.0.1.js"></script>
require(['jquery'], function ($) {
//code
});
Run Code Online (Sandbox Code Playgroud)
从/javascript/jquery.js请求jquery而不是google cdn的已定义路径.我仍然是requirejs的新手,但在我看来,在任何其他请求被解雇之前应该定义路径,有人可以帮助我理解我做错了什么吗?
我正在使用requireJS,我想从中访问一个特定的模块.不幸的是,我总是收到404消息,说明找不到该模块.
我在路径配置中包含我的js文件,如下所示:
<script src="/js/shop2/springen/vendor/require.min.js" data-main="/js/shop2/springen/app" async></script>
Run Code Online (Sandbox Code Playgroud)
我的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']);
}
});
});
Run Code Online (Sandbox Code Playgroud)
现在我的问题是我需要内联设置我的搜索模块,因为我必须在服务器端生成翻译并用它初始化它:
<script type="text/javascript">
$(document).ready(function(){
require(['Search'], function () {
$('#q').shopIncrementalSearch({
resultsDiv: $('#lifesearch'), …Run Code Online (Sandbox Code Playgroud)