Kyl*_*ina 4 javascript variables pug
我想创建一个包含mixin的所有参数的变量,然后将变量传递给mixin.这是可能的,如果是这样,为什么这不起作用?
- var foo = "'arg1','arg2','arg3'"
mixin bar(arg1, arg2, arg3)
div
#{arg1}, #{arg2}, #{arg3}
+bar(foo)
Run Code Online (Sandbox Code Playgroud)
你正在尝试的东西不起作用,因为你使用一个字符串作为单个参数并用一个字符串调用你的bar mixin.您不会在','字符处拆分字符串参数,因此只有您的arg1包含值.
首先让我们修复你的酒吧mixin
mixin bar(args)
div
each arg in args
| #{arg}
Run Code Online (Sandbox Code Playgroud)
代码只使用一个名为'args'的参数.对于此参数,需要一些可枚举或类似数组的类型.有关迭代的更多信息,请参阅jade文档.代码块| #{arg}
将arg值写为纯文本.
如何调用这个mixin?您不需要提供参数作为字符串,而是需要提供参数数组:
mixin bar(['arg1','arg2','arg3'])
Run Code Online (Sandbox Code Playgroud)
如果你想传递一个字符串作为参数,你必须重写你的mixin栏:
mixin barString(argString)
- args = argString.split(',');
div
each arg in args
| #{arg}
Run Code Online (Sandbox Code Playgroud)
然后你可以调用barString mixin:
mixin barString("arg1,arg2,arg3")
Run Code Online (Sandbox Code Playgroud)
请注意,我已删除此调用的单引号.