pug - 使用 pug mixin 结果作为属性值

标签 pug template-mixins

这是我要完成的事情的简化版本:

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;
    }

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

关于pug - 使用 pug mixin 结果作为属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41415049/

相关文章:

express - 无法扩展哈巴狗的布局

pug 表单输入类型=文本属性 'size' 不起作用?

node.js - 在 Jade 中使用 HTML 是否被认为是不好的做法?

javascript - 如何更改谷歌地图API可拖动标记的颜色?

C++ Mixins——这是正确的实现方式吗?

d - mixin 到 D 中的每个非抽象子类中

c# - 人们如何在 C# 中重用混合风格?

c++ - 根据参数数量调用mixin基类的构造方法

javascript - 警告 : Unexpected block "scripts" Jade