如何将对象的属性作为本地传递给Jade中的include?

时间:2012-04-20 01:40:27

标签: javascript templates template-engine pug

我想在循环中传递一个对象,如下所示;

数据结构:

things = [
      {
          title: 'foo'
        , description: 'bar'
      }
    , {
          title: 'baz'
        , description: 'bam'
      }
];

index.jade:

- for thing in things
    include things-template

在上面的格式中,我希望能够将某种参数指定为包含的“locals”。

事情-template.jade:

li
  h3 #{title}
  p #{description}

这是可能的,还是我需要将它分配给另一个变量并在我的“thing-template”中引用它?

2 个答案:

答案 0 :(得分:3)

作为最新的玉器版本(0.27.4)
您可以将对象引用传递为模板的相同名称

for thing in things
  include thing

将自动包含./thing.jade,其中thing为对象
在thing.jade中:

li
  h3 #{thing.title}
  p #{thing.description}

答案 1 :(得分:-3)

由于您想要包含现有模板,我想您没有这么多。为什么不简单地使用àjadecase阻止?

html
    body
        for thing in things
            case things-template
                when "simple"
                    include simple
                when "complexe"
                    include complexe
                default
                    include simple