如何在Haml文件中的JavaScript标记中呈现部分?
我希望页面加载完成后显示保存按钮。
此刻,文件(部分)看起来像这样:
.form-group.form-actions
.col-sm-offset-2.col-sm-10
%button.btn.btn-primary{type: "submit", name: "save"
%i.icon-white.icon-ok
= t("Save")
我将%button.btn.btn-primary
部分移至另一个部分文件_save_button.html.haml
,并尝试了以下操作:
.form-group.form-actions
.col-sm-offset-2.col-sm-10
:javascript
$(document).ready( function() {
$.ajax({
type: "GET",
url: "<%= render partial: 'save_button' %>" ,
success: function(data){
//if ever there is something more to do (there is also an error handler)
}
});
});
虽然没有任何影响,但没有显示“保存”按钮。
如何加载部分加载的内容?
对于初学者来说,您好像在URL中使用ERB语法。 <%=
开头不是HAML语法。
关于在JavaScript方法中渲染部分代码,我不认为Ajax是您想要的。您已经在使用$(document).ready
,因此在该位置执行的所有操作都应在文档加载后发生。
您可以在JavaScript代码中呈现Haml部分代码,但是您需要转义HTML,以使浏览器不认为它是代码:
someHtml = "#{ j render(partial: 'your_partial') }";
[j
是escape_javascript
的快捷方式。
对于Haml,您想要#{ ... }
而不是<%= ... %>
。>>