如何在jade中使用代码(点语法)

时间:2014-08-13 06:33:55

标签: node.js express pug

我使用jade' s dot syntax来呈现HTML。在该模板中,我使用了一些代码来迭代一些数据(帖子)。但无法获得输出,它会产生错误:

  

无法读取属性'标题'未定义的

我知道我使用不正确的语法在点语法方法中使用代码。但不知道如何纠正它。以下是代码。请注意:

div.container.
    <div class="test">
        each post, i in posts
            <div class="cls">#{post.title}</div>
    </div>

任何帮助都更明显。

1 个答案:

答案 0 :(得分:3)

Jade不允许使用大多数语法,例如each迭代,其中plain text是预期的,例如在“Block Text”标记内(以点缀为后缀)。

目前,each post, ...正在作为文本内容输出而不是被评估,因此它没有为post {和i定义#{post.title}成功。

您可以使用“Piped Text”行来混合HTML和jade的each次迭代。

div.container
    | <div class="test">
    each post, i in posts
        | <div class="cls">#{post.title}</div>
    | </div>

或者,您也可以使用Jade自己的语法:

div.container
    .test
        each post, i in posts
            .cls= post.title