【发布时间】:2017-03-20 23:16:24
【问题描述】:
在反应中,我可以通过从控制器传递结果轻松地重新渲染视图。我不想在这个阶段使用 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 for jquery 中重新渲染道具一样?我这样做是否正确?
【问题讨论】:
-
看看这里coderwall.com/p/kqb3xq/rails-4-how-to-partials-ajax-dead-easy。您基本上需要
.js.erb或等效项,并且您的操作需要响应js,在模板(.js.erb 文件)中,您可以使用 jquery 替换/呈现页面中您需要的任何内容.. -
我明白了。我会读一读。谢谢。
-
@fanta YEAAHHHH 这行得通!感谢您的链接!
标签: javascript jquery ruby-on-rails ruby ruby-on-rails-5