javascript - 如何在使用 AJAX 部分时自动加载第一个 ActiveRecord 对象
问题描述
我有一个列表@products
出现在index.html.erb
. 如果您单击任何一个特定产品,而不是转到show.html.erb
页面,它会发出 AJAX 请求并按_show.html.erb
预期将部分加载到index.html.erb
页面上。
有没有一种方法可以自动将第一个产品加载到index.html.erb
页面,而无需使用 AJAX 请求单击特定产品?
现在,index.html.erb
页面在我呈现部分的区域中是空白的,直到我单击产品,然后它按预期呈现。我正在寻找index.html.erb
页面的初始加载来加载第一个产品。
解决方案
要回答您的问题,我有两种方法。
方法 1:document.ready
发送 AJAX 调用以显示第一个产品。这样它就不会是显式点击,调用就像延迟加载调用一样。
方法 2:只需修改您的索引代码并在您期望的区域中为第一个产品呈现部分内容,_show.html.erb
如下所示:
<%= render :partial => "show", :locals => { :product => @products.first }%>
# PRODUCT TABLE
<%- @products.each do |product| %>
<% PRODUCT ROWS %>
<% end %>
注意:渲染部分语法可能会有所不同。
推荐阅读
- sql - SQL Server 中有没有办法解决这个优先级条件问题?
- c# - 我可以根据 ObservableCollection 中的列表在 DataGrid 中自动生成列吗?
- c++ - 具有多态性的对象声明中的逗号
- javascript - 如何记录用户输入以在以后嵌入 discordjs 中使用
- flutter - Flutter,如何访问 State<> 对象
- java - 从 ByteStreamArray 解组时添加了不需要的回车
- swift - 从 nib 文件加载的 NSView 已禁用控件并且操作也不起作用
- c++ - 异或组合
- dataframe - 使用 seaborn 绘制不同列的数据
- angular - 角度请求:HttpRequest
不通用