我有一个rails create操作,该操作将文件中的一些jquery发送回去:
create.js.erb
var appearance = $("<%= escape_javascript(render(:partial => @appearance)) %>").effect("highlight", {color: '#E6ff00'}, 2000);
$("#sortable").append(appearance);
$("#new_appearance")[0].reset();
我已经开始使用HAML,并且想知道我应该如何转换它。我可以使用js.haml吗?
如果是这样,标记应该是什么样?
最佳答案
实际上,在HAML中返回JS非常容易,只需使用:plain过滤器并将您要评估的任何内容括在#{}中即可。
:plain
var appearance = $("#{escape_javascript(render(:partial => @appearance)}").effect("highlight", {color: '#E6ff00'}, 2000);
$("#sortable").append(appearance);
$("#new_appearance")[0].reset();
不要使用:javascript过滤器,因为它会将所有内容括在标签中,而不必要的。
如果需要使用一些逻辑,只需将:plain放在嵌套中即可。
- if params[:printing]
:plain
$('#print-view').html("#{escape_javascript(render 'print_preview')}");
对不起ERB。
关于jquery - 如何在Rails中发回js.haml,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1622209/