扩展对象以在Jade中设置属性

时间:2012-06-02 16:50:21

标签: templates attributes pug

我希望能够使用表示元素属性的键/值对传入对象。这有可能与玉?

任何允许我将属性集合传递到模板中的解决方案就足够了,但是将显式声明的属性与从对象中提取的属性(如下所示)混合的能力将是理想的。

以下语法不起作用,它只是我想要做的一个例子。

例如,如果我通过了这个:

{ 
    name:'username',
    value:'bob',
    attributes: {
        maxlength: 16
    }
}

到这个模板:

input(name=name, value=value, attributes)

所需的输出是:

<input name="username" value="bob" maxlength="16" />

2 个答案:

答案 0 :(得分:5)

由于您是GitHub上this issue的一部分,您可能已经知道了答案。但是,对于其他任何人来说,这就是答案:

玉:

input.foo(name=name value=value)&attributes(attrs)

将此数据传递给渲染功能:

{
    name: 'username',
    value: 'bob',
    attrs: {
        maxlength: 16
    }
}

输出:

<input name="username" value="bob" class="foo" maxlength="16"/>

答案 1 :(得分:0)

您需要传递一个对象名称或使用关键字“global”,如下所示:

partial('myview', { { 
    name:'username',
    value:'bob',
    attributes: {
        maxlength: 16
    }
}, as: global });

否则你需要为你的对象命名并通过该范围访问它们。

Check out the docs