代码

Jade目前支持三种类型的可执行代码。第一种是前缀-, 这是不会被输出的:

  1. - var foo = 'bar';

这可以用在条件语句或者循环中:

  1. - for (var key in obj)
  2. p= obj[key]

由于Jade的缓存技术,下面的代码也是可以的:

  1. - if (foo)
  2. ul
  3. li yay
  4. li foo
  5. li worked
  6. - else
  7. p oh no! didnt work

哈哈,甚至是很长的循环也是可以的:

  1. - if (items.length)
  2. ul
  3. - items.forEach(function(item){
  4. li= item
  5. - })

所以你想要的!

下一步我们要转义输出的代码,比如我们返回一个值,只要前缀一个=

  1. - var foo = 'bar'
  2. = foo
  3. h1= foo

它会渲染为bar<h1>bar</h1>. 为了安全起见,使用=输出的代码默认是转义的,如果想直接输出不转义的值可以使用!=

  1. p!= aVarContainingMoreHTML

Jade 同样是设计师友好的,它可以使javascript更直接更富表现力。比如下面的赋值语句是相等的,同时表达式还是通常的javascript:

  1. - var foo = 'foo ' + 'bar'
  2. foo = 'foo ' + 'bar'

Jade会把 if, else if, else, until, while, unless同别的优先对待, 但是你得记住它们还是普通的javascript:

  1. if foo == 'bar'
  2. ul
  3. li yay
  4. li foo
  5. li worked
  6. else
  7. p oh no! didnt work