我想为Pug视图添加自定义模板功能。
为简单起见,我使用一个自定义函数uppercase
创建了一个演示文件:
const Koa = require("koa")
const views = require("koa-views")
const app = new Koa()
app.use(
views(__dirname + "/views", {
extension: "pug",
options: {
helpers: {
uppercase: str => str.toUpperCase()
}
}
})
)
app.use(ctx => ctx.render("index", { name: "Name1" }))
app.listen(3000)
这是一个巨型简单模板
views/index.pug
:h1= uppercase(name)
但它不起作用,它会显示以下错误:
TypeError: /Users/max7z/projects/test/t24__test__koa-views_pug/views/index.pug:1
> 1| h1= uppercase(name)
2|
uppercase is not a function
最佳答案
没有使用Koa,但是最近我在Pug中使用Eleventy.js解决了类似的问题。 Pug文档不是很出色,因此花了一些时间才弄清楚。
我必须使函数成为全局函数,然后在渲染模板时使用globals属性。
例如
global.uppercase = function(str){
return str.toUpperCase();
}
app.use(
views(__dirname + "/views", {
extension: "pug",
options: {
globals: ["uppercase"]
}
})
)
关于javascript - 如何在Koa项目中为Pug添加自定义模板功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51340490/