簡體   English   中英

使用laravel mix將Datatables JS邏輯放在laravel中的何處?

[英]Where to put Datatables JS logic in laravel using laravel mix?

我對這一切都很陌生。 我很抱歉這個奇怪的問題。

我打算使用 Yajra Datatables Package 在 Laravel 中顯示一些動態表。 我安裝了 Laravel Mix。 顯然數據表需要 js 邏輯才能像使用 ajax 發送/獲取東西一樣工作。

Laravel Mix Docs 中,它說:

類似於使用 mix.styles() 組合樣式表,您也可以使用 scripts() 方法組合和縮小任意數量的 JavaScript 文件

如果我這樣做,我所有需要 js 的頁面是否也將包含特定表的此特定數據表邏輯? 這個可以嗎?

Ive mix 安裝但我仍然應該使用“public/js”目錄在需要時包含這些類型的腳本嗎?

tldr; 我應該將 datatables 包所需的 js 邏輯放在 laravel 的什么位置?

編輯:這是一些示例代碼。 我應該把這個放在哪里? 我可以在相關的刀片視圖中放入,但這是一個很好的方法嗎?

 <script>
   $(document).ready( function () {
    $('#MyDatatable').DataTable({
           processing: true,
           serverSide: true,
           ajax: "{{ url('users-all') }}",
           columns: [{ data: 'id', name: 'id' },
                    { data: 'name', name: 'name' },
                    { data: 'email', name: 'email' },
                    { data: 'created_at', name: 'created_at' }]});});
  </script>

基本上你所做的是正確的,但供參考:

1.首先添加datatables通過NPM或CDN項目。 (不要忘了jQuerydatatables

CDN

<link rel="stylesheet" href="//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">

<script src="//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>

新產品管理

npm install datatables --save-dev

在您的項目中導入數據表(例如,如果您使用 Laravel deafult app.js

import 'datatables/media/css/jquery.dataTables.css';
import 'datatables';

2.然后您有多個選項,但您可以在布局文件中添加類似stack('scripts') ,並在刀片視圖中包含您的腳本。

例如: master.blade.php (布局示例)

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Layout</title>
</head>
<body>
@yield('content')
@stack('scripts')
</body>
</html>

dashbboard.blade.php (示例頁面)

@extends('layouts.master')

@section('content')
<h1>My Awesome Tables</h1>
<div id="MyDatatable"></div>
@endsection

@push('scripts')
    $(document).ready(function () {
        $('#MyDatatable').DataTable({
            processing: true,
            serverSide: true,
            ajax: "{{ url('users-all') }}",
            columns: [{data: 'id', name: 'id'},
                {data: 'name', name: 'name'},
                {data: 'email', name: 'email'},
                {data: 'created_at', name: 'created_at'}]
        });
    });
@endpush

我們應該使用這種方法,因為您使用{{ url('users-all') }}所以它必須在刀片中,以便您可以打印它。 否則,您可以在app.js上使用它並以其他方式添加您的 url 端點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM