【问题标题】:Expanding an object to set attributes in Jade在 Jade 中扩展对象以设置属性
【发布时间】:2012-06-02 16:50:20
【问题描述】:

我希望能够传入一个带有表示元素属性的键/值对的对象。 Jade 可以做到这一点吗?

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

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

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

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

到这个模板:

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

期望的输出是:

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

【问题讨论】:

    标签: templates attributes pug


    【解决方案1】:

    由于您是 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"/>
    

    【讨论】:

    • 感谢您的回复。这已经在这里有一段时间了,老实说,我已经忘记了它在这里。如 github 问题所述:&attributes 不会转义输出,因此请谨慎使用
    • 很高兴知道。我没听懂。
    【解决方案2】:

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

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

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

    Check out the docs

    【讨论】:

    • 这无论如何都不能解决问题的实质。我试图弄清楚如何获取包含属性列表的对象并将这些属性应用于我的模板中的标签。例如。 input(attributes) 其中attributes 是一个以属性名作为键、以属性值作为值的对象。我不需要重命名locals
    • 抱歉 Prestaul,我误解了这个问题。如果您找到答案,请发布您的答案。
    猜你喜欢
    • 2020-03-11
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多