bootstrap-datepicker没有使用requirejs进行填充
我正在使用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。 我想图书馆没有正确填充。
这是我使用的垫片:
"datepicker" : { deps: ["jquery-ui", "bootstrap"], exports: "$.fn.datepicker" }
对于
"datepicker": "lib/datepicker/js/bootstrap-datepicker"
看看datepicker
的源代码看起来它实际上并没有导出任何东西 – 这就是为什么requirejs
找不到全局dt
变量来“连接”到(如果在浏览器环境中运行,则为window.dt
)。 根据datepicker
的网站,它只是将其function添加到jQuery对象,它不应该被用作独立的实例。 其文档页面中的示例:
$('#dp5').datepicker() .on('changeDate', function(ev){ if (ev.date.valueOf() < startDate.valueOf()){ .... }
});
你尝试过类似的东西吗?
我认为在这种情况下不需要垫片。