我正在使用backbone.js + require.js构建一个应用程序。我想在我的应用程序中使用datepicker:datepicker
由于它的非AMD,我在这样的requirejs中填充它:
require.config({
baseUrl: "appjs",
paths:{
jquery: '../layout_assets/assets/js/libs/jquery-1.8.2.min',
dt: '../layout_assets/plugins/datatables/jquery.dataTables.min',
dtPlugins:'../layout_assets/plugins/datatables/dtplugins',
dtBootstrap: '../layout_assets/plugins/datatables/dataTables.bootstrap',
underscore: '../assets/js/underscore-min',
Backbone: '../assets/js/backbone-min',
bootstrap: '../assets/js/bootstrap.min',
datepicker:'../layout_assets/bootstrap-datepicker'
},
shim: {
underscore:{
exports:"_"
},
Backbone:{
deps: ['underscore','jquery'],
exports: "Backbone"
},
dt: {
deps:['jquery'],
exports: "dt"
},
dtPlugins: {
deps:['jquery','dt'],
exports:"dtPlugins"
},
bootstrap: {
deps:['jquery'],
exports:"bootstrap"
},
dtBootstrap: {
deps: ['dt','jquery'],
exports: "dtBootstrap"
},
datepicker:{
deps:['jquery','bootstrap'],
exports:"datepicker"
}
}
});
现在在我的一个观点中,我将datepicker称为:
define(['Backbone',
'underscore',
'jquery',
'datepicker',
'models/reports',
'dtBootstrap',
'bootstrap',
'text!templates/reports/dashboard.html',
],function(Backbone,_,$,dp,report,dtBootstrap,bootstrap,dashboard){
var view=Backbone.View.extend({
el:"#content-wrap",
template:_.template(dashboard),
render:function(){
this.$("#container-left").html(this.template());
console.log(dp);
}
});
return view;
});
这会在控制台上返回undefined。我想这个库没有得到正确的填充。
答案 0 :(得分:5)
这是我使用的垫片:
"datepicker" : {
deps: ["jquery-ui", "bootstrap"],
exports: "$.fn.datepicker"
}
的
"datepicker": "lib/datepicker/js/bootstrap-datepicker"
答案 1 :(得分:0)
查看datepicker
的来源,看起来事实上并没有输出任何内容 - 这就是为什么requirejs
无法找到全局{{}} {1}}变量为" connect" to(dt
如果在浏览器环境中运行)。根据{{1}}的网站,它只是将其功能添加到jQuery对象,它不应该被用作独立的实例。其docs page:
window.dt
});
你有没有尝试过类似的东西?
我认为在这种情况下不需要填充。