如何指定运行javascript'document.ready'的视图或控制器

时间:2013-08-10 01:07:44

标签: javascript ruby-on-rails ruby

我希望在加载页面时运行类似于下面的javascript。

$ ->
  $.getJSON '/memos.json', (data) ->
    $.each( data ), (key,memo)->
      $('#memos').append( "#{memo.title} #{memo.content}<br/>") 

但我想在加载'users / show.html.erb'之后才运行它。 视图就像轰鸣声

<div id="memos"></div>

我认为有两种方法可以做到这一点。 一种是指定加载的视图,第二种是指定控制器。

我不认为在erb文件上编写javascript是个好主意。 有没有办法实现它们?

感谢。

1 个答案:

答案 0 :(得分:1)

$ ->
    ..

在第一行,将被翻译为

$(function() {
  ...
});

这基本上是JQuery的简写

$(document).ready(function() {
  ...
});

这意味着只有在DOM就绪后才能执行此函数内部的脚本。

所以您可以将javascript保存到单独的文件中,让我们说js/memos/index.js并在您的视图中app/views/memo/index.html.erb' you would have the`,并在同一文件中,您可以包含带有javascript include标记的javascript。

只有在DOM准备好后才会执行javascript,这意味着此时你已经拥有了div。

有关JQuery的ready http://api.jquery.com/ready/

的更多信息