beN*_*erd 5 jquery requirejs backbone.js twitter-bootstrap
我正在使用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"
}
}
});
Run Code Online (Sandbox Code Playgroud)
现在在我的一个观点中,我将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;
});
Run Code Online (Sandbox Code Playgroud)
这将在控制台上返回undefined.我想这个库没有得到正确的填充.
小智 5
这是我使用的垫片:
"datepicker" : {
deps: ["jquery-ui", "bootstrap"],
exports: "$.fn.datepicker"
}
Run Code Online (Sandbox Code Playgroud)
对于
"datepicker": "lib/datepicker/js/bootstrap-datepicker"
Run Code Online (Sandbox Code Playgroud)
查看datepicker的源代码,它看起来实际上并没有导出任何内容 - 这就是为什么requirejs找不到要dt“连接”的全局变量(window.dt如果在浏览器环境中运行)。根据datepicker的网站,它只是将其功能添加到 jQuery 对象,它不应该用作独立实例。其文档页面的示例:
$('#dp5').datepicker()
.on('changeDate', function(ev){
if (ev.date.valueOf() < startDate.valueOf()){
....
}
Run Code Online (Sandbox Code Playgroud)
});
你尝试过类似的事情吗?
我相信在这种情况下没有必要进行匀场。
| 归档时间: |
|
| 查看次数: |
5830 次 |
| 最近记录: |