在表单或其他东西上使用remote:true
,并使用:js
从 Controller 响应,我们可以告诉rails执行一些javascript文件。
例如,如果您要销毁用户。您将拥有用户 Controller 和销毁操作。然后,您将拥有一个文件 views/users/destroy.js.erb
,其中包含以下内容:
$("ul#users").html("<%= j render partial: 'user_list' %>");
我的问题是...是否有一个快捷方式可以将该 javascript 放入 Controller 中,这样我就不必将这些小文件散落在我的应用程序中?如果我只用一些实例变量渲染部分内容,而不渲染其他内容,我希望看到类似的内容:
respond_with render :js, with: 'partial_foo', on: '#selector .bar'
有这样的捷径吗?
最佳答案
我可以向您推荐的唯一捷径
是使用json
并使用不显眼的JS处理响应:
#view
<%= form_for @variable, remote: :true, method: :json %>
#controller
respond_to :json, :html
def action
respond_with @variable
end
JSON 发送小型序列化数据对象,这意味着您不必处理任何文件,并且可以根据需要处理数据:
#app/assets/javascripts/application.js
$(element).on("ajax:success", function(data) {
message = JSON.stringify(data);
alert(message.attribute);
});
如果你喜欢这个想法,我可以回来提供一些处理部分的想法
关于javascript - Rails AJAX 快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305621/