我有一个简单的块重复四次,每个块都有相应的变量名称,这些名称将增加1。
所以我想也许我可以循环4次并以某种方式解释变量,这样它就可以工作而不是复制块4次并以编程方式更改变量名。
以下是我的块
的示例div.tile_content.tile_tax_form_bottom_bar
h3.form_headline!= keys.global.faq
div#tax.panel-group.custom-panel
div.panel.panel-default
div.panel-heading
h4.panel-title
a.collapsed(href='#tax-1', data-toggle='collapse', data-parent='#tax')
i.fa.fa-times-circle
i.fa.fa-plus-circle
!= keys.tax.faq_q1
div#tax-1.panel-collapse.collapse
div.panel-body
p!= keys.tax.faq_a1
正如您所看到的,我有一些id参数为tax-{i}
,但更大的问题是存储翻译的keys
对象,例如keys.tax.faq_a{i}
。
这样的事情是可能的,还是我应该将其复制四次并使其硬编码?
答案 0 :(得分:1)
假设这是您传递的数据的基本表示(如果错误则原谅这些假设)
-var keys = {global: {faq: 'faq'}, tax:{'faq_a1': 'a', 'faq_a2': 'b', 'faq_a3':'c', 'faq_a4': 'd'}}
这将有效:
-for(var i=1; i<5; i++)
-var taxId = '#tax-' + i;
-var keyId = 'faq_a' + i;
div.tile_content.tile_tax_form_bottom_bar
h3.form_headline!= keys.global.faq
div#tax.panel-group.custom-panel
div.panel.panel-default
div.panel-heading
h4.panel-title
a.collapsed(href=taxId, data-toggle='collapse', data-parent='#tax')
i.fa.fa-times-circle
i.fa.fa-plus-circle
!= keys.tax.faq_q1
div.panel-collapse.collapse(id=taxId)
div.panel-body
p!= keys.tax[keyId]
如果你不想在顶部声明变量,你可以尝试插值,这是一个品味问题。我认为没有插值它看起来更干净。
我在本地运行它,它根据你所描述的内容构建。我粘贴输出,但它有很多行。