jquery/rails 回调一个函数来刷新数据表

Posted

技术标签:

【中文标题】jquery/rails 回调一个函数来刷新数据表【英文标题】:jquery/rails call back a function to refresh datatables 【发布时间】:2013-01-06 02:16:36 【问题描述】:

我已经启动并运行了数据表,以及漂亮的 jquery-ui,就像在数据表的首页中一样。

但是,我遇到的主要问题是我很不擅长 CoffeeScript/JS

我尝试每 1 秒重新加载一次数据表,但没有看到任何请求进入网络服务器,因此网页本身没有刷新。

这是我的代码:

app/assets/javascripts/cmets.js.coffee

jQuery ->
  $('#comments_id').dataTable
    sPaginationType: "full_numbers"
    bJQueryUI: true
    bProcessing: true
    sAjaxSource: $('#coments')
  setInterval('$("#comments_id").dataTable().fnReloadAjax()', 3000);

似乎未执行 setInterval 回调以使用 fnDraw 重绘表格。

看来我的 setInterval 编码错误。

这是我的 app/view/cmets/index.html.erb 中的代码

<h1>Listing comments</h1>

<table id="comments_id" class="display">
<thead>
  <tr>
    <th>String</th>
  </tr>
</thead>
<% @comments.each do |comment| %>
<tbody>
  <tr>
    <td><%= comment.string %></td>
  </tr>
<% end %>
</tbody>
</table>

<br />

<%= link_to 'New Comment', new_comment_path %>

我们将不胜感激。

【问题讨论】:

一个完全诚实的人! 【参考方案1】:

你必须设置sAjaxSource,而不是仅仅重绘数据表,你应该重新加载它:

.dataTable().fnReloadAjax();.

见:JQuery DataTables - AJAX Reloading Not Working

【讨论】:

Hiya Ghommey:所以我设置了 sAjaxSource: $('#cmets')。在评论视图中,我将表定义如下 sAjaxSource 必须是 url

以上是关于jquery/rails 回调一个函数来刷新数据表的主要内容,如果未能解决你的问题,请参考以下文章

AJAX 回调函数刷新页面问题

在微信小程序中操作执行成功后回到上一页,并进行刷新

从原型迁移到 Jquery Rails,empty() 函数不起作用

pyqt5怎么刷新widget

处理回调函数[重复]

dwz中保存数据后回调如何添加自己的回调方法