簡體   English   中英

在js.erb中部分渲染Rails而無需重新加載整個頁面

[英]rendering rails partial in a js.erb without reloading the entire page

我的頁面中有一部分,當我加載頁面時會被加載。 加載時會像這樣被調用。

<%= f.simple_fields_for :application_attachments do |attachment| %>
        <%= render "attachment_fields", {:f => attachment, :instalment => true, :type => 'application_assignment'} %>
      <% end %>

然后,我運行一些函數來更改application_attachments關聯的值,並且我只需要重新加載該部分並呈現最新信息。

我的更新值的方法有一個js.erb文件,我嘗試像這樣更新和呈現部分文件

generate_attachment.js.erb

    <% form_for @application do |f| %>
        <%= f.fields_for :application_attachments do |attachment| %>
            $("<%= escape_javascript render(partial: 'attachment_fields', locals: {f: attachment}, :instalment => true, :type => 'application_assignment') %>")
                .appendTo($("#application-attachments-#{@rand_value}"));
        <% end %>
    <% end %>

基本上,我只是想重新渲染渲染部分的零件並更新值,但是它不起作用。

我不知道該怎么辦,或者如何用最新的html部分地更新所需的div。 任何建議或選擇表示贊賞

嘗試這個:

1-為此做一個局部:(_custom_partial.html.erb)

<%= f.simple_fields_for :fields_for_param do |attachment| %>
  <%= render "attachment_fields", {:f => attachment, :instalment =>
 true, :type => 'application_assignment'} %> 
<% end %>

2頁結構應如下所示:

<% form_for @application do |f| %>
 <div id="my_id">
  <%= render partial: 'custom_partial', locals: {fields_for_param: 
   application_attachments}%>
 </div>
<% end %>

3-在js.erb文件中,僅將my_id div重新加載具有可變內容的內容,例如

$('#my_id').html('<%= j render 'custom_partial', locals: {fields_for_param: your_changebale_variable}%>');

您可以根據自己的需要修改此代碼。 希望這會工作。 惡作劇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM