2012-02-28 13 views
5

Rails 3.0をプロトタイプのujs rails.jsスクリプトとともに使用しています。Rails動的に追加されたコンテンツ用のUJS

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

新しいリンクを再スキャンするためのrails.jsの取得方法を教えてください。

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

これを行うには、すべてのrails.jsを自分の関数でラップして、新しいリンクを追加したときにページロード*と*を呼び出すしかありません。

これは合理的なアプローチをようだが、私は私がこの問題を持っている最初のものだということを信じることができないとして躊躇し、それを行うための標準的な方法がないことを...

+0

これで運がありましたか?私は同じ問題を抱えています。私はその間に 'button_to'を使用していますので、私は悲しいです。遅延バインディングを提供すると思われる 'delegate'を使用しているので、私はそれを理解しません。また、代議員はされている。しかし、それは別の問題です。 –

答えて

2

あなたがあなたのリモートビューの応答に

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

だからレールのヘルパーを使用し、ボタン、リンクなどをレンダリングしている(例:some_view.js.erb/some_view.js.haml)あなたは:remote要素が必要な場合は、レールヘルパーを再度使用する必要があります。 新しいDOM要素を再スキャンして、リモート動作をアタッチする必要はありません。 JSで

あなたはjavascriptを

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

を使用してDOMからコンテンツを置き換える/更新することができます表示、新しいアクションが送信されている場合も、あなたのブラウザのネットワークインスペクタで見ることができます。

関連する問題