[英]Re-render a page using jquery
作为响应,我可以通过传递控制器的结果轻松地重新渲染视图。 我不希望在此阶段使用React,并且想知道JQuery是否可能?
我的页面上只有几个对象,当单击时,应该会看到其内容。 单击另一个对象,我看到它的内容等等。 我的运气启发了我。
我可能没有以正确的方式进行操作,但这就是我所拥有的:
控制器:
def index
selected_contract = params[:selected_contract] || current_user.contracts.last.id
@contracts = current_user.contracts.order(created_at: :desc).all
@selected_contract = current_user.contracts.find_by(id: selected_contract)
end
视图:
<% @contracts.each do |contract| %>
<button class="ui button test" id="<%=contract.id%>"><%=contract.name%></button>
<% end %>
......................................
When clicked, show its content
....................................
<%= @selected_contract.name %>
JS:
$( ".ui.button.test" ).click(function(e) {
let { id } = this
console.log(id)
$.ajax({
url: `/url/${id}`,
type: 'POST',
success: function(result) {
//$('#listview').redraw()
console.log('success')
}
});
});
路由设置正确,所以我在控制器中获得了参数。 是否有重新渲染视图,就像在React for jquery中重新渲染道具一样? 我这样做正确吗?
如果您正在使用jquery listview,则应该可以。
$( "#listview" ).listview( "refresh" );
参考https://api.jquerymobile.com/listview/#method-refresh
或由于其导轨,您也可以在服务器端重新加载或渲染局部视图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.