下面的代码工作正常。我可以在_constructor中编写扩展逻辑,扩展默认值将在所有表中覆盖。
(function(window, document, undefined){
var factory = function($, DataTable) {
"use strict";
$.extend(true, DataTable.defaults, {
dom: '<"dataTablesTop"' +
'f' +
'<"dataTables_toolbar">' +
'>' +
'rt' +
'<"dataTablesBottom"' +
'lip' +
'>'
});
myExtension.prototype = {
_constructor: function(){
....
}
}
....
return myExtension;
})(window, document);
但我的预期结果是根据与DataTables初始化一起传递的配置值应用扩展覆盖。
var oTable = $('#table').DataTable({
myExtension: true
});
理想情况下应该是这样的,
(function(window, document, undefined){
var factory = function($, DataTable) {
"use strict";
myExtension.prototype = {
_constructor: function(){
if(settings.myExtension){
$.extend(true, DataTable.defaults, {
dom: '<"dataTablesTop"' +
'f' +
'<"dataTables_toolbar">' +
'>' +
'rt' +
'<"dataTablesBottom"' +
'lip' +
'>'
});
}
}
}
.....
return myExtension;
})(window, document);
任何人都知道如何实现它?
答案 0 :(得分:0)
目前看来这是不可能的。 DataTables在'preInit'回调之前初始化dom元素。因此看起来需要在构建阶段推送/注入其他元素。