使用 pug mixin 结果作为属性值
Use pug mixin result as attribute value
这是我要完成的任务的简化版本:
mixin foo(bar)
= bar + ".html"
a(href= +foo("baz")) test
我想将锚标记编译为 <a href="baz.html">test</a>
,但我得到的是类型错误,foo
不是函数。虽然我确实看到它在技术上不是一个功能,但这不是一个 mixin 有用的场景吗?我已经在 pug 文档中搜索了与我类似的用例场景,但没有成功。
我在这里尝试使用 mixins 可以实现吗?或者这是否只有通过作为上下文变量传递的常规 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;
}
只是传递一个使用 mixins 的例子:
定义
mixin aLink(href, name)
a(href=href)&attributes(attributes)= name
用法
+aLink('https://whosebug.com/', 'Stack Overflow')(class='text-orange')
这是我要完成的任务的简化版本:
mixin foo(bar)
= bar + ".html"
a(href= +foo("baz")) test
我想将锚标记编译为 <a href="baz.html">test</a>
,但我得到的是类型错误,foo
不是函数。虽然我确实看到它在技术上不是一个功能,但这不是一个 mixin 有用的场景吗?我已经在 pug 文档中搜索了与我类似的用例场景,但没有成功。
我在这里尝试使用 mixins 可以实现吗?或者这是否只有通过作为上下文变量传递的常规 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;
}
只是传递一个使用 mixins 的例子:
定义
mixin aLink(href, name)
a(href=href)&attributes(attributes)= name
用法
+aLink('https://whosebug.com/', 'Stack Overflow')(class='text-orange')