我希望在加载页面时运行类似于下面的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是个好主意。 有没有办法实现它们?
感谢。
答案 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/