Backbone.js require.js加载引导未定义
我的main.js如下所示Backbone.js require.js加载引导未定义,backbone.js,twitter-bootstrap,requirejs,amd,Backbone.js,Twitter Bootstrap,Requirejs,Amd,我的main.js如下所示 requirejs.config({ //By default load any module IDs from ../js baseUrl: '../js', paths : { 'jquery': 'libs/jquery', 'underscore': 'libs/underscore', 'backbone': 'libs/backbone', 'bootstrap': 'libs/bootstrap' }, shim: {
requirejs.config({
//By default load any module IDs from ../js
baseUrl: '../js',
paths : {
'jquery': 'libs/jquery',
'underscore': 'libs/underscore',
'backbone': 'libs/backbone',
'bootstrap': 'libs/bootstrap'
},
shim: {
'jquery': {
exports: '$'
},
'backbone': {
//These script dependencies should be loaded before loading
//backbone.js
deps: ['jquery', 'underscore'],
//Once loaded, use the global 'Backbone' as the
//module value.
exports: 'Backbone'
},
'underscore': {
exports: '_'
},
'bootstrap': {
deps: ['jquery'],
exports: 'Bootstrap'
}
}
});
define(
['jquery', 'backbone','underscore', 'bootstrap'],
function (j, b, u, boot) {
console.log('jquery', j);
console.log('backbone', b);
console.log('underscore',u);
console.log('bootstrap', boot);
}
);
我的控制台图像如下:
当我点击X登录警报时,它们消失了。因此,我认为bootstrap.js加载正确。但是,它在控制台中表示未定义。有人能告诉我bootstrap.js是否正确加载且使用安全吗?为什么它说未定义,而其余的则在控制台中定义得很好。作为
jquery
,backbone
,和下划线
导出全局变量以在其他地方使用,而引导
只会获取现有jquery对象
,并将插件添加到该对象中,因此它不会输出任何东西
因此,如果您试图在define
回调中接收它,理想情况下,它将是undefined
。如果您在页面上使用了任何引导组件
,并且该组件正常工作,则表示引导已集成
来自requirejs
对于仅为jQuery或主干插件且不需要导出任何模块值的“模块”,垫片配置可以只是一组依赖项:
requirejs.config({
shim: {
'bootstrap': ['jquery']
}
});
因此,如果您愿意,您可以像文档中指定的那样声明bootstrap。可能是因为所有
jquery
、backbone
和下划线
创建(导出)全局变量,而bootstrap
只会向现有的jquery
对象添加插件,不会全局导出任何内容,因此,在define回调中不会收到任何内容。@Cyclone,因此,从技术上讲,我以后对引导库没有任何问题。是的,如果您在页面上使用了任何引导功能,并且它正常工作,您不应该有:)