我正在尝试使用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中使用斜杠。
答案 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}";