หลังจากที่ใส่ JQuery และ Font Awesome ไปแล้วที่นี้เราก็มาลองใช้จริงโดยใช้ DataTables.net ทั้งการใช้เจเควียรีและฟอนต์ รวมถึงการใช้ตัวแปร variable ต่าง ๆ ในไฟล์
- เพิ่ม Datatables โดย command
npm install datatables.net-dt
- เปิดไฟล์ SourceCode/resources/js/app.ts
- เพิ่ม code หลัง jQuery
1234
//jQuery.DataTables.net
import
'datatables.net'
;
import
'datatables.net-dt'
;
import
'datatables.net-dt/css/dataTables.dataTables.min.css'
;
- สร้าง code ที่เรียกใช้ jQuery และ Datatables.net ตามปกติ เช่น SourceCode/public/assets/tickets.list.js12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
$(document).ready(
function
() {
$(
'#tickets-list'
).DataTable(
{
ajax: {
headers: {
'X-CSRF-TOKEN'
: csrf_token,
'X-Requested-With'
:
'XMLHttpRequest'
},
type:
'GET'
,
url: base +
'/tickets'
},
columns: [
{
orderable:
false
,
render:
function
(data, type, row, meta) {
return
parseInt(meta.row) + parseInt(meta.settings._iDisplayStart) + 1;
},
title:
'No.'
,
width:
'10px'
},
{
orderable:
false
,
render:
function
(data, type, row, meta) {
return
'<input type=checkbox value="'
+ row.DISTRICT_CODE +
'">'
;
},
title:
'<input class="checkAll" type="checkbox">'
,
width:
'10px'
,
},
{
data:
'id'
,
name:
'id'
,
orderable:
true
,
title:
'ID'
,
width:
'10px'
},
{
data:
'category_id'
,
orderable:
true
,
render:
function
(data, type, row) {
return
row.category;
},
title:
'Category'
},
{
data:
'vessel_id'
,
orderable:
true
,
render:
function
(data, type, row) {
return
row.vessel;
},
title:
'Vessel'
},
{
data:
'service_line_id'
,
orderable:
true
,
render:
function
(data, type, row) {
return
row.service_line;
},
title:
'Service Line'
},
{
data:
'support_engineer_id'
,
orderable:
true
,
render:
function
(data, type, row) {
return
row.support_engineer;
},
title:
'Support Engineer'
},
{ data:
'sla_dt'
},
{ data:
'working_time'
},
{
orderable:
false
,
render:
function
(data, type, row) {
return
'<a href="'
+ base +
'/tickets"><i class="fa fa-pen"></i> Edit</a> | '
+
'<a href="'
+ base +
'/tickets"><i class="fa fa-trash"></i> Delete</i></a>'
;
},
width:
'200px'
}
],
lengthMenu: [10, 25, 50, 75, 100],
order: [[0,
'asc'
]],
pageLength: 10,
processing:
true
,
serverSide:
true
,
stateSave:
true
,
}
);
});
- จากนั้นเพิ่ม code ในหน้าที่จะเรียกใช้ เช่น
12345
<script type=
"module"
>
window.base =
'{{ url('
') }}'
;
window.csrf_token =
'{{ csrf_token() }}'
;
</script>
<script src=
"{{ asset('assets/tickets.list.js') }}"
type=
"module"
></script>
- ทดลองเปิดหน้าขึ้นมาทดสอบ
อธิบาย
บรรทัดที่ 1 <script type=”module”> จะใช้ JavaScript ES module นะ
บรรทัดที่ 2 – 3 คือประกาศตัวแปรระดับ window ให้ SourceCode/public/assets/tickets.list.js สามารอ้างอิงได้ เช่น base และ csrf_token