我有一个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/

10-11 13:26