带有 RequireJS 的数据表按钮扩展

Posted

技术标签:

【中文标题】带有 RequireJS 的数据表按钮扩展【英文标题】:Datatables button extension with RequireJS 【发布时间】:2016-10-18 20:33:58 【问题描述】:

我在使用 require js 加载数据表库时遇到问题 这是我的代码

require.config(
    paths: 
        "jquery" :    "https://code.jquery.com/jquery-2.2.4.min",
        "datatables" : "https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min",
        "datatables-btn" : "https://cdn.datatables.net/buttons/1.2.1/js/dataTables.buttons.min",
    
);


requirejs( ["datatables", "datatables-btn"], function() 
    $('#example').DataTable( 
        dom: 'Bfrtip',
        buttons: [
            'copy', 'csv', 'excel', 'pdf', 'print'
        ]
    );
);

我在开发控制台上遇到了这个错误 error log

感谢您的帮助..

【问题讨论】:

这是文件丢失的情况吗? 是的先生,我不知道为什么需要 datatables.net,js 如果我删除“datatables-btn”表单 requirejs,没有发现问题,但我需要 datatables 按钮扩展 【参考方案1】:

您缺少很多 .js 脚本文件。找出您需要的脚本文件的最简单方法是转到DataTables download builder(即使您没有下载)并选择您需要的扩展/功能。这将生成您需要包含的脚本文件列表(用于下载或 CDN),然后您可以将其转换为 RequireJS 语法以包含。我整理了一份您可能需要的清单,如下所示:

"https://code.jquery.com/jquery-2.2.3.min.js"
"https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.min.js"
"https://cdn.rawgit.com/bpampuch/pdfmake/0.1.18/build/pdfmake.min.js"
"https://cdn.rawgit.com/bpampuch/pdfmake/0.1.18/build/vfs_fonts.js"
"https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"
"https://cdn.datatables.net/buttons/1.2.1/js/dataTables.buttons.min.js"
"https://cdn.datatables.net/buttons/1.2.1/js/buttons.html5.min.js"
"https://cdn.datatables.net/buttons/1.2.1/js/buttons.print.min.js"

您可能认为这太多了,或者我添加了不必要的脚本,但让我解释一下添加的内容。

如果您希望您的 excel 导出按钮正常工作,jszip 是必需的(这在 DataTables 下载页面上有说明) pdfmake 是 pdf 导出按钮工作所必需的 vfs_fonts 也是 pdfmake 的一部分 您需要两个buttons.html5 脚本文件才能使您的按钮正常工作(假设您想使用HTML5 按钮,如果您想使用Flash 按钮,则必须转到下载生成器并选择Flash 按钮)

这些应该是您需要包含的所有脚本(据我从您的代码 sn-p 可以看出),但如果您想仔细检查甚至添加更多功能,我建议您检查一下上面的链接可以找到您需要的脚本文件列表。

【讨论】:

以上是关于带有 RequireJS 的数据表按钮扩展的主要内容,如果未能解决你的问题,请参考以下文章

带有RequireJS的邮件

带有 requirejs/AMD 的 Webpack

是否可以阻止 requireJS 自动添加 .js 文件扩展名?

使用带有 RequireJS 的私有 jquery - 优化后的问题

带有requirejs的骨干 - 传递给视图时“模型未定义”

基于requirejs+bluebird,50行代码实现轻巧实用的前端CMD加载器