【问题标题】:Looping over multiple variables in Pug在 Pug 中循环多个变量
【发布时间】:2021-10-22 09:46:52
【问题描述】:

我正在努力寻找在循环中声明这些变量的正确方法。我需要变量在块中的两个不同位置循环。

第一个 const breadcrumbsItems:必须在 span 标记中循环。

第二个常量breadcrumbsAttributes:必须在(data-trigger="")中循环

谁能帮我解决这个问题? 提前致谢

   
- const breadcrumbsItems = [ `John`, `Jane`, `Jefferson`,  `Ramirez` ]
- const breadcrumbsAttributes = ['tabOne','tabTwo', 'tabThree', 'tabFour']
     
  .breadcrumbs
    ul.breadcrumbs__list
      li.breadcrumbs__elements
        a.breadcrumbs__tabs.is-selected(data-trigger="#{const breadcrumbsAttributes}")
          span.breadcrumbs__item #{const breadcrumbsItems}
          svg.breadcrumbs__icon
            use(xlink:href="assets/defs.svg#icon-close")

【问题讨论】:

    标签: javascript html pug


    【解决方案1】:

    您可以循环其中一个数组,然后使用循环的索引来访问另一个数组中的相应值:

    ul
      each item, i in breadcrumbItems
        li
          button(data-trigger= breadcrumbsAttributes[i])
            span #{item}
    

    此外,尝试始终使用按钮而不是链接来执行不会将用户导航到新内容的操作。

    【讨论】:

    • 我进行了一些调整,但最终成功了!
    【解决方案2】:

    您需要嵌套迭代。您可以使用每个。 这是一个您可以匹配以适合您的标记的示例。

    也可以在code section of the docs 下找到示例。

    如果您想快速使用一些 pug 标记,可以将此代码放入 codepen.io 并添加 pug 作为 html 预处理器。

    - const breadcrumbsItems = [ `John`, `Jane`, `Jefferson`,  `Ramirez` ]
    - const breadcrumbsAttributes = ['tabOne','tabTwo', 'tabThree', 'tabFour']
    
    each item in breadcrumbsItems
      a.example(data-trigger=item) #{item}
        each attr in breadcrumbsAttributes
          div #{attr}
    

    另一个常见的混淆是何时使用#{},何时不使用。 如果您要声明这样的属性 a(data-trigger=var),则括号内部将被视为 javascript。所以没有#{}。

    如果您在文本或标记区域内,请使用 #{}。

    【讨论】:

    • 问题是嵌套的迭代会循环自己,这意味着对于每个循环的#{item},将会有 4 个#{attr}循环
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多