gpt4 book ai didi

javascript - Pug/Jade 中动态包含的解决方法

转载 作者:太空宇宙 更新时间:2023-11-04 02:01:27 25 4
gpt4 key购买 nike

我了解 Pug 不支持模板中的动态包含或扩展。即

extend path/to/template 

有效但无效

extend #{dynamic_path_to_template}

是否有一种解决方法(无论多么复杂)可以实现在运行时修改 View 使用的模板的相同目标

上下文:我的用例是我正在开发一个 npm 模块,并且用于扩展其他 View 的模板位于该模块内部。模块发布并安装后,将定义路径(即node_modules/my_module/path/to/template),但在开发阶段,我只需要能够“npm link”到模块并使模板工作。我也不想对链接进行硬编码,这样我就可以发布与测试相同的代码。

最佳答案

我也遇到了这个问题,并在寻找解决方案时发现了这个问题。我的解决方案类似于 Nikolay Schambergs 的答案,但我认为我应该分享它。

我创建了一个函数,通过给定路径并将其传递给选项对象来呈现模板。也许它对你的情况也有帮助

const includeFunc = (pathToPug, options = {}) => {
return pug.renderFile(pathToPug, options); //render the pug file
}

const html = pug.renderFile('template.pug', {include: includeFunc});

然后在模板中按如下方式使用它:

body
h1 Hello World
|!{include(dynamicPugFilePathFromVariable)}

关于javascript - Pug/Jade 中动态包含的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45824697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com