2012-02-28 28 views
5

Tôi đang sử dụng Rails 3.0 với tập lệnh mẫu ujs rails.js nguyên mẫu.Rails UJS cho nội dung được thêm động

Tôi có một số liên kết link_to "...", :remote => true đang được thêm vào trang sau khi trang đã tải và sau rails.js đã đính kèm sự kiện ujs vào tất cả các liên kết a[data-remote].

Làm cách nào để tôi có được rails.js để quét lại các liên kết mới?

rails.js dường như bao gồm một chức năng ẩn danh, vì vậy tôi không thể gọi trực tiếp.

Cách duy nhất tôi có thể nghĩ là thực hiện điều này là bao bọc tất cả rails.js trong chức năng của riêng mình mà sau đó tôi có thể gọi khi tải trang * và * khi tôi đã thêm liên kết mới.

này dường như là một cách tiếp cận hợp lý, nhưng tôi ngần ngại như tôi không thể tin rằng tôi là người đầu tiên có vấn đề này và rằng không có một cách tiêu chuẩn để làm điều đó ...

+0

Bạn đã có may mắn với điều này chưa? Im có cùng một vấn đề. Tôi đang sử dụng 'button_to' trong thời gian đó khiến tôi buồn. Tôi không hiểu nó bởi vì nó đang sử dụng 'delegate' được cho là cung cấp sự ràng buộc muộn. Ngoài ra đại biểu đã được superceded .. nhưng đó là một vấn đề khác. –

Trả lời

2

Khi bạn đang vẽ một nút, liên kết, vv bạn sử dụng đường ray giúp đỡ

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

Vì vậy, bạn trong phản ứng của quan điểm từ xa của bạn (ví dụ .: some_view.js.erb/some_view.js.haml) bạn nên sử dụng lại những người giúp đỡ đường ray nếu bạn muốn có một : yếu tố từ xa. Bạn không cần phải quét lại chúng các phần tử DOM mới để hành vi từ xa được đính kèm.

Trong js xem bạn có thể cập nhật/thay thế các nội dung từ DOM sử dụng javascript

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

Ngoài ra bạn có thể xem trong Mạng Thanh tra trình duyệt của bạn nếu các hành động mới đang được gửi.

Các vấn đề liên quan