Javascript Jade中的嵌套Mixin导致非法令牌错误
我有一个复杂的翡翠模板,我简化了这个问题。我正在研究动态嵌套mixin,它根据我传递的字符串的值更改输入的属性。我必须使用mixin进行输入,所以不幸的是,没有mixin对我来说不是一个选项。我在带有Javascript Jade中的嵌套Mixin导致非法令牌错误,javascript,node.js,pug,mixins,Javascript,Node.js,Pug,Mixins,我有一个复杂的翡翠模板,我简化了这个问题。我正在研究动态嵌套mixin,它根据我传递的字符串的值更改输入的属性。我必须使用mixin进行输入,所以不幸的是,没有mixin对我来说不是一个选项。我在带有+input\u mixin(…的行上得到错误意外标记非法 mixin name_of_mixin(type) - if type == 'multiple' - var name = '{{:#index}}' - else if type == 'old'
+input\u mixin(…
的行上得到错误意外标记非法
mixin name_of_mixin(type)
- if type == 'multiple'
- var name = '{{:#index}}'
- else if type == 'old'
- var name = 'old'
- else
- var name = 'normal'
+input_mixin(#{name})
通过查看jade文档,我的建议是执行以下操作以消除
非法令牌错误,实际上有点夸张
- var name = ""
mixin input_mixin(name, name)
input(name=name)&attributes(attributes)= name
mixin name_of_mixin(type)
if type == 'multiple'
- name = '{{:#index}}'
else if type == 'old'
- name = 'old'
else
- name = 'normal'
+name_of_mixin('foo')
+input_mixin(- name, name)(placeholder='plaeceholder value')
我提出了以下简化的解决方案,看起来效果不错。我想主要的问题是mixin调用的缩进和条件语句前面的连字符
- var name = ""
mixin input_mixin(name)
input(name=name)&attributes(attributes)
mixin name_of_mixin(type)
if type == 'multiple'
- name = '{{:#index}}'
else if type == 'old'
- name = 'old'
else
- name = 'normal'
+name_of_mixin('foo')
+input_mixin(name)(placeholder='placeholder value')
我真的不是翡翠模板制作的专家,但是通过查看文档和摆弄你的例子,我想到了这个。这就是你要找的吗?嘿@DavidDomain如果你把这作为一个答案,我会指出它是正确的。你做得有点太多了,但我能够根据你的代码笔来找出它。所以谢谢!(这是你如何简化你所做的事情,)很高兴你找到了答案。我添加了这一点,作为对其他使用jade模板的mixin有类似问题的人的回答。