我想知道是否可以通过使用通用的JS文件来最小化我的代码,因为我的应用程序周围会有很多数据表..
所有数据表都具有相同的主题,只有数据存在差异。
像我这样的脚本
var oTable = $('#ManageForms').dataTable({
"aoColumns": [
/* ID */ {
"bVisible": false,
"bSortable": false,
"bSearchable": false
},
/* Form Name */ null,
/* Form Path */ null,
/* Form CI Path */ null,
/* Actions */ null
],
"bServerSide":true,
"bProcessing":true,
"bJQueryUI": true,
"sPaginationType": "full_numbers",
//"bFilter":true,
//"sServerMethod": "POST",
"sAjaxSource": "{{base_url()}}admin/configurations/listForms_DT/",
"iDisplayLength": 25,
"aLengthMenu": [[2, 25, 50, -1], [2, 25, 50, "All"]],
/*"sEcho": 1,
"columns":[
{data:"FormName"},
{data:"FormPath"},
{data:"FormCIPath"},
{ "data": null,
"defaultContent": "<a href='#editBtnModal' class='editBtnFunc' ><i style='color: #666666' class='fa fa-pencil fa-fw fa-2x'></i></a><a href='#' id='deleteBtn'><i style='color: #ff0000' class='fa fa-times fa-fw fa-2x'></i></a>",
"targets": -1
}
],*/
'fnServerData' : function(sSource, aoData, fnCallback){
$.ajax ({
'dataType': 'json',
'type' : 'POST',
'url' : sSource,
'data' : aoData,
'success' : fnCallback
}); //end of ajax
},
'fnRowCallback': function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
$(nRow).attr("data-id",aData[0]);
return nRow;
}
});
我想除了sAjaxSource": "{{base_url()}}admin/configurations/listForms_DT/",
之外一切都会一样
和
"aoColumns": [
/* ID */ {
"bVisible": false,
"bSortable": false,
"bSearchable": false
},
/* Form Name */ null,
/* Form Path */ null,
/* Form CI Path */ null,
/* Actions */ null
],
所以不要在每个数据表页面上反复粘贴代码。有什么办法我把这个代码放在单个common.js文件中,并发送特定数据表的参数。
答案 0 :(得分:0)
您应该将代码放在一个函数中,该函数可以在每个特定情况下调用,并且需要使用url作为参数:
function getData(url){
// ...
"sAjaxSource": url
// ...
}
此函数可以在公共js中,然后在导入此文件后的任何其他代码中使用。
aoColumns中的数组也可以作为param传递给另一个字段。