繁体   English   中英

使用jquery重新渲染页面

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM