玉石如何在循环中解释变量

3

我有一个简单的块,重复四次,每个块都会有相应的变量名称,这些名称将递增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}。这种情况是否可行,还是应该将其复制四次并进行硬编码呢?
1个回答

1
假设这是您传入的数据的基本表示(如果假设不正确,请谅解)。
-var keys = {global: {faq: 'faq'}, tax:{'faq_a1': 'a', 'faq_a2': 'b', 'faq_a3':'c', 'faq_a4': 'd'}}

This will work:

-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]

如果您不想在顶部声明变量,可以尝试插值,这是一种品味问题。我认为没有插值更清晰。
我在本地运行了这个程序,并构建了您所描述的内容。我可以粘贴输出,但是有很多行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接