在哪里放置一个将表转换为DataTable的js函数

时间:2015-08-19 18:48:36

标签: jquery ruby-on-rails datatable

我在Ruby on Rails 4项目中使用了一个名为DataTables的jQuery库。我对将标签转换为DataTable对象(设置自己的类和ID)的函数放在哪里感到有点困惑。我把它放在application.js文件中,因为我希望这个函数在大多数应用程序视图中都可用,其中大多数都是报告,但我不知道这是不是正确的地方。它有效,但在application.js评论中说:

  

//不建议直接在这里添加代码,但如果你这样做,那就完全了   出现在编译文件的底部。

var tabla =  $('.tabla-reporte').DataTable( {
        dom: 'Bfrtip',
        buttons: [
            {
                extend: 'print',
                autoPrint: false,
                customize: function ( win ) {
                    $(win.document.body)
                        .css( 'font-size', '10pt' )
                        .prepend(
                            '<img src="http://datatables.net/media/images/logo-fade.png" style="position:absolute; top:0; left:0;" />'
                        );

                    $(win.document.body).find( 'table' )
                        .addClass( 'compact' )
                        .css( 'font-size', 'inherit' );
                     var medias = win.document.querySelectorAll('[media="screen"]');
                     for(var i=0; i < medias.length;i++){ medias.item(i).media="all" };
                }
            }
        ]
    } );

显然运行该代码没有问题,因为如果它没有在当前页面的DOM中找到类“tabla-reporte”,它将不会对它做任何事情,但我只是不知道如果这符合“轨道惯例”。

1 个答案:

答案 0 :(得分:1)

您所要做的就是将以下代码添加到.js目录中的任何assets文件中。

$(document).ready(function(){
    $('#myTable').DataTable();
});

此代码将使用DataTables为任何具有id = "myTable"的表格设置样式。如果您有一些表格不希望应用此样式,那么只需给它一个不同的id。 Protip:如果您在同一页面上有多个应使用DataTables设置样式的表格,那么您可以使用class = "myTable"代替。

请勿在{{1​​}}文件中添加任何内容,而不是:

application.js

//= require dataTables/jquery.dataTables 用于存储指令,而不是实际脚本。当您的应用程序启动时,application.js目录中的所有内容都将汇总到一个大型脚本中,因此除非您已设置控制器,否则无需担心哪个assets文件包含DataTables代码特定资产。