首先,封裝類,理解清楚你需要用的哪幾個變數,然後聲明,然後在類里封裝函數,其中,constructor就是存放初始變數的地方。 這裡還是datatable的處理解決, 在功能里配置表格的配置,然後之前的res結果中的data改成this即可 這樣子,就能利用類,來動態定義表格,而且submit里也直 ...
首先,封裝類,理解清楚你需要用的哪幾個變數,然後聲明,然後在類里封裝函數,其中,constructor就是存放初始變數的地方。
這裡還是datatable的處理解決,
constructor(table) { this.data = {}; this.table = table }
inittable(table) { for (var i = 0; i < this.data.rowdata.length; i++) { this.data.rowdata[i].submit_status = 0 } this.data.col_define[this.data.col_define.length] = { 'targets': this.data.col_define.length, 'title': '上傳狀態', 'data': 'submit_status', 'render': function (data, type, full, meta) { if (1 === data) { return '上傳成功' } else if (2 === data) { return '上傳失敗' } else { return '未上傳' } } }; console.log(this.data.col_define); console.log(this.data.rowdata); this.table = $(table).DataTable({ 'language': lan, "dom": 'lB<"top"f><"toolbar">rt<"bottom"ip><"clear">', "paging": true, "lengthChange": true, "info": true, 'destroy': true, "deferRender": true, 'columns': this.data.col_define, 'data': this.data.rowdata, }) }
在功能里配置表格的配置,然後之前的res結果中的data改成this即可
success: function (res) { if ('ok' === res['code']) { if (department === 1) { salary_table = $('#primary_excel_table') } else if (department === 2) { salary_table = $('#middle_excel_table') } else if (department === 3) { salary_table = $('#logistics_excel_table') } alert('解析完成!'); console.log('返回數據是', res['data']); sal.data = res['data']; console.log(sal.data); sal.inittable(modal_table);
這樣子,就能利用類,來動態定義表格,而且submit里也直接配置了,不用再用之前博客里的render功能,
還有就是,字元串的拼接
comcat_string(salary_info) { var items = []; Object.keys(salary_info).forEach(function (key) { if (key !== '名字' && key !== '部門' && key !== '身份證' && key !== 'submit_status') { items.push([key, salary_info[key]].join(':')); } }); return items.join('|') }
用到forEach方法,JS遍歷可以查詢的到方法類。
再者,就是ajax中,如果想要調用this下的變數,需要提前在外部聲明
_this=this
然後類似
_this.data.rowdata[a]['submit_status'] = 1;
自己看的,不喜勿噴,前端實習第11天,我也忘了具體,反正差不多是11把,頭很痛。。。。啦啦啦啦啦德瑪西亞