Forum: Ruby on Rails rails datatables refresh javascript

Posted by Heptagone H (Guest)
on 2013-01-23 13:40
(Received via mailing list)
Hi

I followed a railscast episode and got datatables up and running,
beautifully along with the nice jquery-ui as in the front page.

The main issue I'm having though is that I suck at CoffeeScript/JS  ~_~


I'm trying get the datatables to reload every 1 second but I dont see 
any
request coming into my webserver for refreshes and hence, no refreshes 
on
the web page itself.

Here's my code:

app/assets/javascripts/comments.js.coffee
[code]
jQuery ->
  $('#comments_id').dataTable
    sPaginationType: "full_numbers"
    bJQueryUI: true
    bProcessing: true
  setInterval('$("#comments_id").dataTable().fnDraw()', 1000);
[/code]


And here is the code that gets generated on the client side:
[code]
(function() {

  jQuery(function() {
    $('#comments_id').dataTable({
      sPaginationType: "full_numbers",
      bJQueryUI: true,
      bProcessing: true
    });
    return setInterval('$("#comments_id").dataTable().fnDraw()', 1000);
  });

}).call(this);
[/code]

Help will be appreciated. ^_^
Posted by Robert Walker (robert4723)
on 2013-01-23 20:03
Heptagone H wrote in post #1093275:
> app/assets/javascripts/comments.js.coffee
> [code]
> jQuery ->
>   $('#comments_id').dataTable
>     sPaginationType: "full_numbers"
>     bJQueryUI: true
>     bProcessing: true
>   setInterval('$("#comments_id").dataTable().fnDraw()', 1000);
> [/code]

Take a look at the documentation for setInterval():

http://www.w3schools.com/jsref/met_win_setinterval.asp

Looking at the function signature:

setInterval(code,millisec,lang)

code = The function that will be executed.

You have passed a string for this argument. You can't call a string.

Solution: Give setInterval a function as is expected:

In JavaScript it should look something like:
setInterval(function() {
  $("#comments_id").dataTable().fnDraw();
}, 1000);
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.