发出混合jquery,rails和haml
我正在将html.erb转换为html.haml。 我在erb中有一些jquery是…
:javascript $(".level").live("click", function() { //..some code milestone = "&milestone="; //..some code });
我想将if语句转换为haml,为此我正在做…
- if @milestone milestone = '&milestone="#{@milestone}"'
但这不起作用,并给我一个语法错误“if @milestone”
我究竟做错了什么? 你能混合使用jquery和haml吗?
在里面:javascript
filter(或任何filter)代码不被视为Haml,所以你不能使用像- if ...
但是,您可以在filter内使用#{...}
插值。 在你的情况下你可以做类似的事情:
:javascript $(".level").live("click", function() { //..some code #{"milestone = \"&milestone=#{@milestone};\"" if @milestone} //..some code });
嵌套插值部分有点笨拙,因此您可能希望将其移动到辅助方法中,例如:
def add_milestone(milestone) if milestone "milestone = \"&milestone=#{milestone}\";" else "" end
然后你的Haml看起来像
:javascript $(".level").live("click", function() { //..some code #{add_milestone(@milestone)} //..some code });