如何检查传递的参数是否是mixin
how to check if a passed arguement is a mixin
我有一个 mixin 需要另一个 mixin(如果你愿意的话回调)
如何检查传递的参数是否是一个 mixin,这样它就不会破坏我的代码??
我试过了
p #{mixins} //- nothing gets outputed
p #{Object.keys(pug_mixins).length} //- 0
p #{JSON.stringify(pug_mixins)} // {}
p #{globals} //- nothing gets outputed
// but in vain
有趣的是我在调用 mixin 时故意输入错误
记录的错误以 pug_mixins.templatee is not a function
¯\_(ツ)_/¯
开头
编辑:我也尝试浏览源代码和文档,但没有任何帮助
edit2: 好像只有包裹在函数中才有效!这是为什么???
不起作用
mixin myMixin()
em smth
#container
if pug_mixins['myMixin']
h2 200
else
h2 404
//- 404
//- WHY????
有效
mixin myMixin
h2 200:)!
-
const typeCheck = val => {
if (pug_mixins[val]) {
return 'mixin'
} else {
return 'text'
}
}
mixin myMixin2(val)
#container
case typeCheck(val)
when 'mixin'
+#{val}()
when 'text'
p 404:')
default
p i hate my life
+myMixin2('myMixin')
这对我有用:
mixin bar(m)
| before_
if pug_mixins[m]
+#{m}
| _after
mixin foo
b foo
+bar("foo")
= " "
+bar("baz")
给出此输出:before_<b>foo</b>_after before__after
请注意,pug_mixins
对代码的顺序很敏感。
编辑添加:
您还必须在某个时候实际调用 mixin 才能使 mixin 名称出现在 pug_mixins
中。请注意,在您的无效示例中,您检查了混音的存在,但实际上并未调用它。
我有一个 mixin 需要另一个 mixin(如果你愿意的话回调) 如何检查传递的参数是否是一个 mixin,这样它就不会破坏我的代码??
我试过了
p #{mixins} //- nothing gets outputed
p #{Object.keys(pug_mixins).length} //- 0
p #{JSON.stringify(pug_mixins)} // {}
p #{globals} //- nothing gets outputed
// but in vain
有趣的是我在调用 mixin 时故意输入错误
记录的错误以 pug_mixins.templatee is not a function
¯\_(ツ)_/¯
编辑:我也尝试浏览源代码和文档,但没有任何帮助
edit2: 好像只有包裹在函数中才有效!这是为什么???
不起作用
mixin myMixin()
em smth
#container
if pug_mixins['myMixin']
h2 200
else
h2 404
//- 404
//- WHY????
有效
mixin myMixin
h2 200:)!
-
const typeCheck = val => {
if (pug_mixins[val]) {
return 'mixin'
} else {
return 'text'
}
}
mixin myMixin2(val)
#container
case typeCheck(val)
when 'mixin'
+#{val}()
when 'text'
p 404:')
default
p i hate my life
+myMixin2('myMixin')
这对我有用:
mixin bar(m)
| before_
if pug_mixins[m]
+#{m}
| _after
mixin foo
b foo
+bar("foo")
= " "
+bar("baz")
给出此输出:before_<b>foo</b>_after before__after
请注意,pug_mixins
对代码的顺序很敏感。
编辑添加:
您还必须在某个时候实际调用 mixin 才能使 mixin 名称出现在 pug_mixins
中。请注意,在您的无效示例中,您检查了混音的存在,但实际上并未调用它。