之前我曾使用过Require和DataTables,但这是我第一次真正开始设置。我已经删除了下面代码中调用的一些敏感文件,但我认为这是你们需要帮助的所有内容。
我看到有关是否需要添加min JS路径或是否需要两者的混合消息。因为没有错误,似乎所有东西都被正确地调用了。另外,我听说过有关需要DataTables垫片的混合信息。一切看起来都对吗?我在一个手柄文件中有一个标准表,其中填充了一个json文件。如果你需要那些,请告诉我。
第一部分代码来自require.config文件,最后一部分来自我的把手文件视图。
requirejs.config({
// baseUrl: "js",
paths: {
backbone: "bower_components/backbone/backbone",
jquery: "bower_components/jquery/dist/jquery",
jqueryBridget: "bower_components/jquery-bridget/jquery.bridget",
jqueryui: "bower_components/jquery-ui/jquery-ui",
modernizr: "bower_components/modernizr/modernizr",
datatables: "bower_components/datatables/media/js/jquery.dataTables.min"
},
shim: {
underscore: {
exports: "_"
},
jquery: {
exports: "$"
},
modernizr: {
exports: "Modernizr"
},
backbone: {
deps: ["jquery", "underscore"],
exports: "Backbone"
}
}
});
define(["marionette", "hbs!apps/project/templates/components/project-funds/project-funds-performancetable", "datatables"],
function (Marionette, projectFundsPerformanceTableTemplate, DataTables) {
var ProjectFundsPerformanceTableView = Marionette.ItemView.extend({
template: projectFundsPerformanceTableTemplate,
initialize: function () {
this.deferred = this.model.fetch({
reset: true,
// dataType: "jsonp",
success: (function () {
// alert(' Service request success: ');
}),
error: (function (e) {
// alert(' Service request failure: ' + e);
}),
complete: (function (e) {
// alert(' Service request completed ' + e);
})
});
this.model.on("reset", this.render);
},
onShow: function(){
$('#ce--funds--performanceTable').DataTable();
}
});
return ProjectFundsPerformanceTableView;
});
答案 0 :(得分:0)
如果您使用的是最新版本的jQuery,Backbone和Underscore,则它们不需要填充程序。
jQuery从1.9之前的某个时间开始就不需要垫片了。
检查Backbone和Underscore的带注释来源。在两个源中搜索“amd”,你会看到他们检测到AMD加载器并在AMD加载器出现时调用define
,所以没有垫片。
使用不需要的shim
可以导致未定义的行为,而可以解释您遇到的问题。
哦,如果您使用的是相对较新的版本,DataTables也不需要垫片。我没有垫片就使用1.10.2。