如何在Coffeescript中转义字符串插值

时间:2011-12-22 18:31:20

标签: javascript coffeescript

我正在尝试使用jQuery UI的标签示例中的这部分代码并将其转换为Coffeescript。我通过令人敬畏的http://js2coffee.org/工具运行它。

var tabTitle = $( "#tab_title" ),
    tabContent = $( "#tab_content" ),
    tabTemplate = "<li><a href='#{href}'>#{label}</a> <span class='ui-icon ui-icon-close'>Remove Tab</span></li>",
    tabCounter = 2;

问题是tabTemplate变量声明。据我所知,Coffeescript正在尝试对其进行字符串插值。我已经尝试用斜杠转义它,但这只是解决了在转换后的js中使用斜杠。

2 个答案:

答案 0 :(得分:15)

使用单引号分隔字符串:http://coffeescript.org/#strings

如果您想在字符串中使用单引号而不手动转义它们,则可以使用3个单引号:

x = '''
my string's ok with single quotes and #{doesn't interpolate}
'''

也就是说,这是HTML,因此对于属性而言,双引号实际上比单引号更常见。因此,您的字符串可以写为:

tabTemplate = '<li><a href="#{href}">#{label}</a> <span class="ui-icon ui-icon-close">Remove Tab</span></li>'

没有任何问题。

答案 1 :(得分:8)

使用反斜杠转义确实有效:

$ coffee -bce '"\#{a}"'
"\#{a}";

$ coffee -bce '"#\{a}"'
"#\{a}";