这是我的require.js加载文件:
require.config({
urlArgs: "noCache=" + (new Date).getTime(),
paths: {
jquery: "vendor/jquery-1.8.2.min",
bootstrap: "vendor/bootstrap.min",
underscore: "vendor/underscore-min",
backbone: "vendor/backbone-min",
template: "libs/template"
}
});
require(["jquery", "bootstrap", "underscore", "backbone", "template", "main"],
function ($, bootstrap, underscore, backbone, template, main) {
})
在main.js文件中,我有以下代码:
define(["jquery", "underscore", "backbone"], function ($, _, Backbone) {
//Backbone and _ are undefined here, why?
})
那么为什么,, _“和,Backbone”在这里未定义,我做错了什么? 如何在其他文件中正确使用它们?
答案 0 :(得分:1)
如果您是骨干新手并且需要js集成,请查看以下教程:
http://backbonetutorials.com/organizing-backbone-using-modules/
您可能正在使用非AMD版本的Backbone和下划线。使用shim配置你可以加载任何库,甚至是非AMD模块,这是我的一个源文件的shim配置片段:
requirejs.config({
baseUrl: 'assets/js/',
paths : {
'jquery': 'lib/jquery/jquery.min',
'underscore': 'lib/underscore/underscore-amd-min',
'backbone': 'lib/backbone/backbone-amd-min',
'bootstrap': 'lib/bootstrap/bootstrap.min',
},
shim: {
'backbone': {
deps: ['jquery', 'underscore'],
exports: 'Backbone'
},
'underscore': {
exports: '_'
},
'bootstrap': {
deps: ['jquery']
}
}
});
另一种解决方案是使用您在此处找到的那些库的AMD版本: https://github.com/amdjs
在path
部分下载并指向他们。