Thêm dữ liệu jQuery trong magento 2


8

Tôi đang cố gắng sử dụng DataTables jquery trong frontend magento-2 bằng cách sử dụng các yêu cầu. Tôi có thể thấy tệp datables.min.js trong bảng điều khiển mạng, nhưng bằng cách nào đó, nó đưa ra lỗi sau.nhập mô tả hình ảnh ở đây


nhập mô tả hình ảnh ở đây

Tôi reuirejs-config.jstrông như thế này

var config = {
    map: {
        '*': {
            dataTable: 'Ktpl_Slider/js/datatables.min'
        }
    }

};

Và tôi đang gọi chức năng này trong một tệp mẫu như sau

<script type="application/javascript">
    requirejs(['jquery','dataTable'],function($){
        $(document).ready(function(){
            $('#list-table').DataTable();
        });
    });
</script>

Tôi đoán có vấn đề với thứ tự tải các tập tin js. Tôi đã thử với cấu hình shim nhưng nó không hoạt động, có thể có một số lỗi trong cấu hình shim

Câu trả lời:


6

Tôi nghĩ rằng bạn có một vấn đề khác trong kịch bản của bạn. bạn đã định nghĩa cả jquery và datable là phụ thuộc. Nhưng bạn chỉ truyền jquery cho hàm. Phần chức năng của tập lệnh notifyjs phải có đối tượng tập lệnh phụ thuộc được truyền cho phần chức năng. thử:

<script type="application/javascript">
requirejs(['jquery','dataTable'],function($, dataTable){
    $(document).ready(function(){
        $('#list-table').DataTable();
    });
});

Về phần shim, tôi nghĩ rằng nếu bạn đã định nghĩa nó một cái gì đó như:

var config = {
    map: {
        '*': {
            dataTable: 'Ktpl_Slider/js/datatables.min'
        }
    },
    "shim" {
        "dataTable" : ["jquery"]
    }
};

vậy thì tốt rồi Có vẻ như nó hoạt động với tôi, tuy nhiên, các trích dẫn thêm xung quanh "shim" chỉ có trong tài liệu Magento 2, và không có trong tài liệu về các yêu cầu. Vì vậy, không chắc chắn cái nào là đúng.


6

Bạn có thể thêm jquery với tập lệnh của mình trong tệp mẫu mà không cần thêm phụ thuộc vào reuirejs-config.js

Tôi đã đặt kịch bản của tôi ở đây xin vui lòng thử này.

<script type="text/javascript">
require(['jquery', 'DataTable'],function($){
    (function() {
         $('#relatedProductTable').DataTable({
              "aaData":<?php echo json_encode($dataProducts);?>,
              "aoColumnDefs":[{
                    "sTitle":"Site name"
                  , "aTargets": [ "site_name" ]
              }]);
                    })(jQuery);
});


bạn có thể vui lòng chia sẻ cho tôi mã đầy đủ để đưa plugin datatables vào magento2 không?
jafar pinjar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.