使用jquery重新呈现页面

时间:2016-11-07 14:54:09

标签: javascript jquery ruby-on-rails ruby ruby-on-rails-5

在反应中,我可以通过传递控制器的结果轻松地重新渲染视图。我希望在这个阶段不使用React,并且想知道JQuery是否可以使用它?

我页面上的对象很少,点击后我会看到它的内容。点击其他对象,我看到它的内容等感觉?我受到了this dribbble的启发。

我可能不会以正确的方式做到这一点,但这就是我所拥有的:

控制器:

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中为jquery重新渲染一个道具一样?我这样做是正确的吗?

1 个答案:

答案 0 :(得分:0)

如果您使用jquery listview,这应该可以。

$( "#listview" ).listview( "refresh" );

参考 https://api.jquerymobile.com/listview/#method-refresh

或者从它的rails开始,你也可以在服务器端重新加载或渲染局部视图。