2012-04-01 12 views
7

Intenté esto en jade servido por expreso pero recibí "identificador inesperado" como un error.¿La sintaxis de jade admite una instrucción switch?

- 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 

Tenía curiosidad en cuanto a cuál es la sintaxis de una declaración de cambio, si es que hay una.

Actualización: Jade, no expreso.

+0

¿Quisiste decir * "Does ** node.js ** tiene una declaración de cambio" *? – Joseph

Respuesta

18

EDITAR

Esta pregunta es aparentemente sobre Jade en su lugar.

Pero la respuesta sigue siendo sí :).

pero se llama case:

De the docs

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

Javascript tiene una sentencia switch.

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

Siendo que Express.js se ejecuta en Node.js que es solo JavaScript - sí. Express tiene una instrucción switch ya que JavaScript tiene una declaración switch. (Incluso CoffeeScript tiene una switch que "compila" a una declaración switch JavaScript.)

MDN reference: switch statement

parece que su sintaxis está en mal estado allí - lo que son los "-" personajes? También le falta el : desde el final de cada declaración case, y no está break ing después de cada caso, lo que significa que el código para TODOS los casos SIEMPRE se ejecutará independientemente de la condición.

+0

Es jade - mira la actualización. –

+0

Es interesante que acaba de llamarlo "caso" –

Cuestiones relacionadas