5

Rails 3.0 とプロトタイプ ujs rails.js スクリプトを使用しています。

link_to "...", :remote => trueページがロードされた後にページに追加されるリンクがいくつかあるため、その後、すべてのリンクrails.jsに ujs イベントを添付しました。a[data-remote]

rails.js で新しいリンクを再スキャンするにはどうすればよいですか?

rails.js は 1 つの無名関数で構成されているようで、直接呼び出すことはできません。

これを行う唯一の方法は、すべての rails.js を独自の関数にラップして、ページの読み込み時に *そして* 新しいリンクを追加したときに呼び出せるようにすることです。

これは合理的なアプローチのように思えますが、私がこの問題を抱えた最初の人であり、それを行うための標準的な方法がないとは信じられないため、躊躇しています...

4

2 に答える 2

2

ボタンやリンクなどをレンダリングするときは、Rails ヘルパーを使用します。

= link_to "Add to basket", basket_path, :method => :post, :remote => true

したがって、リモート ビュー (例: some_view.js.erb / some_view.js.haml ) の応答で、 :remote要素が必要な場合は、Rails ヘルパーを再度使用する必要があります。新しい DOM 要素を再スキャンする必要がないため、リモート動作がアタッチされます。

js ビューでは、javascript を使用して DOM からコンテンツを更新/置換できます

:plain
        $('#some-id-selector').replaceWith("#{escape_javascript(render :partial => 'some_other_view.html.haml')}");

また、新しいアクションが送信されているかどうかは、ブラウザの Network Inspector で見ることができます。

于 2012-06-06T07:32:55.900 に答える