如何在 Bootstrap Modal 中为 Dynamically click generated variables 设置 jade 属性?

How can jade attributes be set for Dynamically click generated variables in Bootstrap Modal?

我已经通过 mongoose 向我的 Jade 文件返回了一个有效的 JSON,名为 things 的 JSON 看起来像这样,

[{
   _id: ObjectId("7788h356i0909v7863b75999"),
   important: "Critical123",
   property:[{name: "Test456"},{name: "Test789"},{name: "Test101112"}]
 },
 {
   _id: ObjectId("7788h356i0909v7863b75908"),
   important: "Critical",
   property:[{name: "TestNew"},{name:"TestNewlyOpened"}]
  }
]

我有一个 jade 文件吐出我想要的页面的详细信息,如下所示

基本上,当您单击 glyphicon-plus-sign 时,我会打开一个模式 window

if thing
   each something in thing
          tr.odd.gradeX(id="firstRow" rowspan="2")
             td.imp(type="button") #{something.important}
               a.glyphicon-plus-sign(id="#{something._id}" data-toggle="modal" data-target=".bs-example-modal-lg")

我的模态框在下面与

相同的文件中声明
.modal.fade.bs-example-modal-lg(id="modalBoxSomething" tabindex='-1', role='dialog', aria-labelledby='myLargeModalLabel', aria-hidden='true', style='display: none;')
  .modal-dialog.modal-lg
    .modal-content
      .modal-header#headerModal
        h4#myLargeModalLabel.modal-title
        button.close(id="modalCloseButton" type='button', data-dismiss='modal', aria-label='Close')
          span(aria-hidden='true') ×           
      .modal-body
        .somethingDetails.col-md-6.col-lg-6
         if property
            each nameProperty in property 
              p#propertyName #{nameProperty.name}

这行不通。我可以在 array 中循环 nested sub items 以获得特定项目 click event 吗?

我想在此 modal window 中为每个 something 重复 property 数组的值。

或者我应该写一个 Javascript 来做这个吗?

for(var k=0; k<things.length; k++){
      for(var m=0; k<things[k].property.length; m++){
         $('#propertyName').append('<p>'+JSON.stringify(things[k].property[m].name+'</p>');
      }
}

此处的最佳做法是什么? Javascript 解决方案有效,但如果我试图在 Jade 中实现的目标能够出色地工作,那就太好了。

Can I loop over nested sub items in an array for a specific item click event?

当然可以。 Jade 模板使用 JavaScript 呈现,您也可以通过在行首使用 - 在模板中使用原始 JavaScript。如果您的 JavaScript 代码符合您的要求,您可以将其逻辑移动到您的模板文件中。

What is the best practice here?

使用翡翠。

不清楚您的模板文件中的 property 是什么。如果您希望 Jade 知道它是一个对象数组的 属性,那么事实并非如此。您需要遍历数组,然后遍历每个对象元素的 property 数组,即 2 个嵌套循环。

假设您已经为数组使用了 things 标识符:

each thing, index in things 
  h2.sample= thing.important
  each item in thing.property
     p.propertyName= item.name

请注意,ID 必须唯一,否则您生成的标记无效。