0

ページがロードされたときに次のようにjavascriptを実行したい。

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

しかし、「users/show.html.erb」がロードされた後にのみこれを実行したいと考えています。ビューは次のようになります

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

これを行うには2つのアプローチがあると思います。1 つはロードするビューを指定することで、2 つ目はコントローラーを指定することです。

erbファイルにjavascriptを書くのは良い考えではないと思います。それらを実装する方法はありますか?

ありがとう。

4

1 に答える 1

1

$ ->
    ..

最初の行で、に変換されます

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

これは基本的に JQuery の省略形です

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

つまり、この関数内のスクリプトは、DOM の準備が整ったときにのみ実行されます。

そのため、javascript を別のファイルに保存し、たとえばjs/memos/index.jsビュー内にapp/views/memo/index.html.erb' you would have the` 保存し、同じファイルに javascript インクルード タグを使用して javascript を含めることができます。

javascript は、DOM の準備が整った時点でのみ実行されます。つまり、その時点ですでに div が作成されています。

JQuery の詳細については、ready http: //api.jquery.com/ready/ を参照してください。

于 2013-08-10T09:28:04.460 に答える