2012-02-28 94 views
5

Prototype ujs rails.js komut dosyası ile Rails 3.0 kullanıyorum.Dinamik olarak eklenen içerikler için UJS Rayları

Sayfanın başı yüklenir ve rails.js bağlantılarını a[data-remote] bağlantıların tümüne ekledikten sonra siteye eklenen link_to "...", :remote => true bağlantılarına sahibim.

Yeni bağlantılar için yeniden tarama yapmak için rails.js'yi nasıl alırım?

rails.js bir anonim işlevden oluşuyor gibi görünüyor, bu yüzden doğrudan onu arayamıyorum.

Bunu yapmak için düşünebilmemin tek yolu, tüm rails.js işlevlerini kendi fonksiyonumda sarmalamaktır, daha sonra yeni link eklediğimde sayfa yükünü * ve * arayabilirim.

Bu makul bir yaklaşım gibi görünüyor, ama ben bu sorunu olan ilk kişi benim inanamıyorum olarak tereddüt ve bunu yapmak için standart bir yol olmadığını ...

+0

Bu konuda hiç şansınız oldu mu? Bendede aynı sorun var. Bu arada beni üzen "button_to" kullanıyorum. Anlayamıyorum çünkü geç bağlayıcılık sağlaması gereken “delegeyi” kullanıyor. Ayrıca delege tamamlandı ... ama bu başka bir konu. –

cevap

2

Eğer uzaktan bakış cevaben

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

Yani raylar yardımcıları kullanmak bir düğme, bağlantı, vb render edilir (örn .: some_view.js.erb/some_view.js.haml) Eğer : remote elemanını isterseniz, rayları tekrar kullanmalısınız. Yeni DOM öğelerini yeniden taramanız gerekmez, böylece uzak davranış eklenecek. js ise

güncellemek/yeni eylemler göndermek ediliyor Ayrıca tarayıcınızın Ağ İnceleyicisi'nde izlemek javascript

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

kullanarak DOM içeriği değiştirebilir görüntüleyin.