Могу ли я использовать блок переключателей Coffeescript в eco? - PullRequest
2 голосов
/ 19 января 2012

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 27 января 2012

Шаблоны 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 голосов
/ 24 января 2012

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

Вы можете попробовать это вместо этого:

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