我在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”,它将不会对它做任何事情,但我只是不知道如果这符合“轨道惯例”。
答案 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代码特定资产。