如何将复杂的对象数组传递给Jade模板?

时间:2013-05-09 04:33:23

标签: pug

我有这样的jade snippt:

div.comment_list
    - var clist = comment_list
    each comment in clist
        div.comment
            div.comment_detail
                span.commentator comment.commentator
                span.comment_time comment.comment_time
                span.comment_content comment.comment_content

comment_list是我传递给jade模板的内容。

问题是: 每个数组元素comment都包含一个复合对象,如您所见, 有commentatorcomment_timecomment_content

然而,玉无法识别这个事实,它只输出:comment.commentator comment.comment_timecomment.comment_content vebatim。

那么如何解决这个问题呢?

2 个答案:

答案 0 :(得分:4)

您也不需要- var所有内容。例如

div.comment_list
    each comment in comment_list
        div.comment_detail
            span.commentator #{comment.commentator}
            span.comment_time #{comment.comment_time}
            span.comment_content #{comment.comment_content}

如果输出单个变量,则不需要#{}包装器。只有在那里混合纯文本时才需要它。

div.comment_list
    each comment in comment_list
        div.comment_detail
            span.commentator= comment.commentator
            span.comment_time= comment.comment_time
            span.comment_content= comment.comment_content

并且div是多余的 - 您可以简单地使用.class#id或两者。显然,如果您没有设置课程或ID,则需要在其中添加div字样。

.comment_list
    each comment in comment_list
        .comment_detail
            span.commentator= comment.commentator
            span.comment_time= comment.comment_time
            span.comment_content= comment.comment_content

答案 1 :(得分:-1)

我已经弄清楚了。

让代码进行讨论:

div.comment_list
    - var clist = comment_list
    each comment in clist
        - var commentator = comment.commentator
        - var comment_time = comment.comment_time
        - var comment_content = comment.comment_content
        div.comment_detail
            span.commentator #{commentator}
            span.comment_time #{comment_time}
            span.comment_content #{comment_content}