Как избежать интерполяции строк в Coffeescript - PullRequest
8 голосов
/ 22 декабря 2011

Я пытаюсь использовать этот раздел кода из примера вкладок пользовательского интерфейса jQuery и преобразовать его в 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 ]

15 голосов
/ 22 декабря 2011

Используйте одинарные кавычки для разделения вашей строки: 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>'

без проблем.

8 голосов
/ 23 декабря 2011

Выход с обратной косой чертой работает:

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

$ coffee -bce '"#\{a}"'
"#\{a}";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...