Поддерживает ли синтаксис Jade оператор switch? - PullRequest
7 голосов
/ 02 апреля 2012

Я пробовал это в jade, обслуживаемом Express, но получил "неожиданный идентификатор" как ошибку.

- switch(myvar)
    - case: "0"
        span First Case
            break
    - case: "2"
        span Second Case
            break
    - case: "3"
        span Third Case
            break
    - case: "4"
        span Fourth Case
            break

Мне было интересно узнать, каков синтаксис для оператора switch, если он есть.

Обновление: нефрит, не экспресс.

1 Ответ

18 голосов
/ 02 апреля 2012

РЕДАКТИРОВАТЬ

Этот вопрос, скорее всего, касается Джейд.

Но ответ все еще да:).

Но он называется case:

Из документов

case friends
    when 0
        p you have no friends
    when 1 
        p you have a friend
    default
        p you have #{friends} friends

В Javascript есть оператор switch.

switch(variable){
    case 1:
        // do something
        break;
    case 2:
        // do something else
        break;
    // and so forth
    default: 
        // do something if nothing
        break;
 }

То, что Express.js работаетв Node.js, который просто JavaScript - да.У Express есть оператор switch, поскольку в JavaScript есть оператор switch.(Даже в coffeescript есть switch, который «компилируется» в оператор JavaScript switch.)

Ссылка MDN: switch оператор

Похоже,ваш синтаксис там испорчен - что это за символы "-"?Вы также пропускаете : в конце каждого оператора case, и вы не break после каждого случая, что означает, что код для ВСЕХ случаев будет ВСЕГДА выполняться независимо от условия.

...