Jade模板引擎

变量的声明和数值的传递

  • jade index.jade -P -w –obj ‘{title:”name”}’
    • -P:编译后为未压缩的文件
    • -w:实时查看编译的结果
    • –obj:传入对象
    • 如果变量同名文档内的值优先
  • jade index.jade -P -w -O jade.json
    • -O jade.json:传入json对象

安全转译和非转译

  • 转译

    1
    2
    3
    4
    5
    - var htmlData="<script>alert(1)</script>"
    p #{htmlData}
    p \#{htmlData}
    p= htmlData
    <p>&lt;script&gt;alert(1)&lt;/script&gt;</p>
  • 非转译

    1
    2
    3
    4
    5
    - var htmlData="<script>alert(1)</script>"
    p !{htmlData}
    p \!{htmlData}
    p!= htmlData
    //<p><script>alert(1)</script></p>
  • 变量有值时赋变量值无值时变量为空

    1
    2
    3
    4
    input(value='#{newData}')
    //<input value="undefined">
    input(value=newData)
    //<input>

流程

  • for

    1
    2
    3
    4
    5
    - var imooc = {course:'jade',leavel:'high'}
    - for ( var k in imooc)
    p= imooc[k]
    //<p>jade</p>
    //<p>high</p>
  • each遍历数组

    1
    2
    3
    4
    5
    - var imooc = {course:'jade',leavel:'high'}
    - each value,key in imooc
    p #{value}:#{key}
    //<p>jade:course</p>
    //<p>high:leavel</p>
  • 嵌套循环

    1
    2
    3
    4
    5
    6
    -var sections= [{id:1,items:['a','b']},{id:2,items:['a','b']}]
    dl
    each section in sections
    dt= section.id
    each item in section.items
    dd= item