【问题标题】:js string interpolation fails in haml :javascript filterjs字符串插值在haml中失败:javascript过滤器
【发布时间】:2021-09-14 19:28:45
【问题描述】:

在haml和jquery环境中,以下haml失败:

#result

:javascript
  var foo = "result"
  $(`#${foo}`).text('some text')

其他测试表明,javascript 过滤器中的字符串插值如下:

#result

:javascript
  var foo = "qux"
  $('#result').text(`#${foo}`)

当 '$' 前面紧跟 '#' 时失败。但是当中间有空格时它会成功!

当我需要在嵌入值之前加上“#”时,如何在 javascript 过滤器中实现字符串插值?

提前感谢您提供的任何见解。

[编辑] 当然@Barmar 的串联建议是一个很好的解决方法。我还刚刚发现这在 haml git repo 中报告为 issue# 975

【问题讨论】:

  • 尝试使用反斜杠转义#。它用于 HAML 中的一些特殊功能,虽然我找不到任何提及 #$
  • 如果这不起作用,请返回字符串连接。 $('#' + foo)
  • 感谢@Barmar,转义# 不起作用。我什至没有想到字符串连接,但它当然工作得很好!

标签: javascript haml


【解决方案1】:

尝试仅连接字符串,因为 # 在 HAML 中是特殊的。 $('#' + foo)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-04
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    相关资源
    最近更新 更多