使用pug mixin结果作为属性值

时间:2017-01-01 11:17:24

标签: pug template-mixins

这是我试图完成的一个简化版本:

mixin foo(bar)
    = bar + ".html"

a(href= +foo("baz")) test

我希望将锚标记编译为<a href="baz.html">test</a>,但我所获得的是类型错误,foo不是函数。虽然我确实看到它在技术上不是一个功能,但这不是一个mixin有用的场景吗?我在pug文档中搜索了类似于我的用例场景,但没有成功。

我可以尝试使用mixins来实现这一目标吗?或者这只能作为上下文变量传递的常规JS函数吗?

1 个答案:

答案 0 :(得分:4)

我认为你想使用无缓冲的Javascript。对于您的用例,代码就是这样。

-
    function foo(bar) {
        return bar + ".html";
    }

a(href=foo("baz")) test

这会产生以下HTML:

<a href="baz.html">test</a>

<强>解释

无缓冲Javascript是模板逻辑,不会在最终结果中发出。无缓冲的Javascript由短划线(-)注释。多行无缓冲Javascript由带有单个制表符缩进的短划线定义。

单行

-var foo = "bar"; 

多行

-
    function randomNumber() {
        return 4;
    }

文档:https://pugjs.org/language/code.html