这是我要完成的事情的简化版本:
mixin foo(bar)
= bar + ".html"
a(href= +foo("baz")) test
我想将 anchor 标记编译为 <a href="baz.html">test</a>
,但我得到的是 foo
上的类型错误不是一个功能。虽然我确实看到它在技术上不是一个功能,但这不是一个 mixin 有用的场景吗?我在 pug 文档中搜索了与我的类似的用例场景,但没有成功。
我在这里尝试使用 mixin 可以实现吗?或者这是否只有通过作为上下文变量传递的常规 JS 函数才有可能?
最佳答案
我想你想为此使用无缓冲的 Javascript。对于您的用例,代码应该是这样的。
-
function foo(bar) {
return bar + ".html";
}
a(href=foo("baz")) test
这将导致以下 HTML:
<a href="baz.html">test</a>
解释
Unbuffered Javascript 是模板逻辑,不会在最终结果中发出。无缓冲的 Javascript 由破折号 (-
) 注释。多行无缓冲 Javascript 由带有单个制表符缩进的破折号定义。
单行
-var foo = "bar";
多行
-
function randomNumber() {
return 4;
}
关于pug - 使用 pug mixin 结果作为属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41415049/