Jade在循环中解释变量

时间:2015-09-01 14:54:59

标签: pug

我有一个简单的块重复四次,每个块都有相应的变量名称,这些名称将增加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 个答案:

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

如果你不想在顶部声明变量,你可以尝试插值,这是一个品味问题。我认为没有插值它看起来更干净。

我在本地运行它,它根据你所描述的内容构建。我粘贴输出,但它有很多行。