2012-01-19 1 views
2

Могу ли я использовать блок Coffeescript switch в двигателе экологического шаблона? Я попробовал пару вариантов, но я продолжаю получать ошибки unexpected dedent.Могу ли я использовать блок переключателей Coffeescript в eco?

Update: Чтобы успокоить downvoters, вот что я должен работать

<% switch x : %> 
<% when 1 : %> 
    one 
<% end %> 
<% when 2 : %> 
    two 
<% end %> 
<% end %> 

Но я получаю «Ошибка синтаксического анализа в строке 5: неожиданный dedent»

+0

с двоеточиями в конце и соответствующими <%end%> и без. Какой шаблон должен работать? – Thilo

ответ

2

ECO, кажется, не поддерживает switch заявление.

Сформированный CoffeeScript код для вашего кода:

switch x 
    __out.push '\n' 
    when 1 
    __out.push '\n one\n' 
    __out.push '\n' 
    when 2 
    __out.push '\n two\n' 
    __out.push '\n' 

Две __out.push '\n' линии после switch x и конец второго when заявления, кажется, не позволяют это CoffeeScript фрагмент кода для компиляции в JavaScript.

Просматривая код, я не мог понять, как предотвратить печать этих строк. Это может быть хорошей ошибкой, чтобы сообщить ребятам, которые делают eco.

+0

Кажется, что эко в настоящее время действительно не поддерживает 'switch'. Я записываю отчет об ошибке. https://github.com/sstephenson/eco/issues/38 – Thilo

0

Я только немного знакомы с eco, но кажется, что это просто не будет создавать правильную CS из этого выражения. Учитывая, что CS использует when x then y, я не уверен, что вы получаете это при компиляции.

Вы могли бы попробовать это вместо: шаблоны

<% switch x : %> 
    <% when 1 then: %> 
     one 
    <% end %> 
    <% when 2 then: %> 
     two 
    <% end %> 
<% end %> 

 Смежные вопросы

  • Нет связанных вопросов^_^