将参数发送到Common JS文件

时间:2014-08-24 06:01:51

标签: javascript php jquery codeigniter

我想知道是否可以通过使用通用的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文件中,并发送特定数据表的参数。

1 个答案:

答案 0 :(得分:0)

您应该将代码放在一个函数中,该函数可以在每个特定情况下调用,并且需要使用url作为参数:

function getData(url){
   // ...
  "sAjaxSource": url
  // ...
}

此函数可以在公共js中,然后在导入此文件后的任何其他代码中使用。

aoColumns中的数组也可以作为param传递给另一个字段。