【问题标题】:How to use codes inside jade ( dot syntax )如何在jade中使用代码(点语法)
【发布时间】:2014-08-13 06:33:55
【问题描述】:

我正在使用jadedot syntax 来呈现HTML。在该模板中,我使用了一些代码来迭代一些数据(帖子)。但无法获得输出,它给出了一个错误:

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

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

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

任何帮助都更有意义。

【问题讨论】:

  • 你为什么说post, i应该只是post in posts
  • 我认为这不是问题...??
  • 您是否将您的帖子对象传递给页面?负责呈现页面的类应该检索帖子并将它们传递给呈现的页面,以便您可以访问这些帖子。
  • 是的..从路由器传递过来..就像res.render('posts/index', { title: 'Posts', posts:posts});
  • @JonathanLonowski..那么我该怎么做..?

标签: node.js express pug


【解决方案1】:

Jade 不允许使用其大部分语法,例如 each 迭代,其中需要 plain text,例如在“块文本”标签(点后缀)内。

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

您可以改为使用“管道文本”行来混合 HTML 和玉的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 2016-09-06
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    相关资源
    最近更新 更多