gpt4 book ai didi

javascript - HAML 中动态生成的 Javascript

转载 作者:数据小太阳 更新时间:2023-10-29 07:29:06 25 4
gpt4 key购买 nike

为什么这行不通?

:javascript
-[1,2,3].each do |number|
$("#form_#{number}").my_method();

Rails 给我一个错误,说变量 number 没有定义。

最佳答案

过滤器的内容不会被解释为 Haml。不过,您可以使用 #{...} 进行插值,这就是您看到错误的原因——过滤器在 中看到了 #{number}” #form_#{number}",但是上面定义了 number 的那一行只是按原样传递,没有被视为 Ruby,所以就 Ruby 而言 number 仍未定义。

在这种情况下你可以这样做:

:javascript
#{[1,2,3].map do |number|
"$(\"#form_#{number}\").my_method();"
end.join("\n")}

虽然这有点笨拙。

一个更清晰的解决方案可能是创建一个辅助方法来创建 javascript,您可以从过滤器中调用它:

def create_js(arr)
arr.map do |number|
"$(\"#form_#{number}\").my_method();"
end.join("\n")
end

哈姆尔会是

:javascript
#{create_js([1,2,3])}

关于javascript - HAML 中动态生成的 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11822153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com