我有 2 个 Pug 文件。
第一个定义配置对象(base.pug)对象如下
const config = { name: 'abc', age: 25}
另一个 Pug 模板 (main.pug),其中包括
base.pug
并希望为对象添加附加属性。
script.
const base = {tech: 'js'}
const mergedObject = {config, base} // I supposed this should merge 2 object.
const mergedObjectWithSpreadOp = {...config, tech: 'js'} // again I supposed this should merge 2 object.
注意:使用的 pug-runtime 是 2.0.1
我的方法都不起作用。我怎样才能实现这个目标?
我想将
base.pug
中的对象与 main.pug
合并
正如你所发现的,用 Pug 写这样的东西——
script.
const foo = {...config, tech: 'js'}
— 仅在脚本标记内按原样呈现该文本。这是您正在使用的标签插值语法的预期行为。
如果您想在 Pug 中合并两个对象,然后将合并的对象渲染为脚本标记中的字符串,则需要执行以下操作:
script.
const foo = !{JSON.stringify({...config, tech: 'js'})}
地点:
{...config, tech: 'js'}
使用 JS spread 语法创建单个新对象JSON.stringify(...)
将该对象转换为表示它的字符串!{...}
是用于非转义字符串插值的 Pug 语法最后一部分告诉 Pug 评估该代码,而不是仅仅渲染为文本。