动态创建具有不同id的模态';用Jade和Javascript编写的

动态创建具有不同id的模态';用Jade和Javascript编写的,javascript,node.js,twitter-bootstrap,express,pug,Javascript,Node.js,Twitter Bootstrap,Express,Pug,我正在使用Nodejs/Express/Jade/Bootstrap尝试创建一个清单系统,我在地图上单击一个房间(300个房间),然后出现一个模式(Bootstrap),其中包含该房间中的项目列表(最终还有一个CRUD)。虽然我完全可以为每个房间创建一个不同的模式,然后为每个模式编写数据库查询,但我觉得我应该能够动态地这样做。理想情况下,我应该能够做类似的事情 for room-number in school #school[room-number].modal.hide (ins

我正在使用Nodejs/Express/Jade/Bootstrap尝试创建一个清单系统,我在地图上单击一个房间(300个房间),然后出现一个模式(Bootstrap),其中包含该房间中的项目列表(最终还有一个CRUD)。虽然我完全可以为每个房间创建一个不同的模式,然后为每个模式编写数据库查询,但我觉得我应该能够动态地这样做。理想情况下,我应该能够做类似的事情

for room-number in school
  #school[room-number].modal.hide
    (insert substance)
但是我无法让div id正常工作。出现的是

<#rm3 class="modal hide">
×
Room 3
some text

希望我的想法能被接受,任何帮助都会很棒。提前谢谢

模式的代码有问题

 - for (num in numbers)
 .modal.hide(id="#{num}")
  .modal-header
    button.close(type="button", data-dismiss="modal", aria-hidden="true") x
    h2 Room 3
  .modal-body
    p some text
由于您处于for(num in numbers)中,因此不必从数字中获取num。您可以直接访问num

在Jade中,div的id属性通常是通过使用#来设置的,但在本例中,我怀疑##{num}是否有效,这就是为什么我选择将其作为括号之间的属性

我还随意设置了关闭按钮的格式

还有另一种方式,与其为每个房间创建一个模型,不如构建一个空的模型来加载(调用时使用信息)


如果你不知道我在说什么,告诉我,我会编辑我的答案。

所以我把它切换到.modal.hide(id=“#{numbers[num]}”)html显示正确,但当我单击房间3时,模式不会显示,所以我必须弄清楚。作为对你其他建议的回应,我假设你的意思是创建一个空模式,然后当用户单击房间时,我用该房间号查询数据库并动态填充1模式?所以我尝试了它,没有插入,和#rm4.modal.hide起作用,但.modal.hide(id=“#rm4”)不起作用。对于您的第一条注释:调用modal的代码中应该有问题。您是对的,我说的是动态填充modal。对于您的第二条注释,它应该是
.modal.hide(id=“rm4”)
这个
#
是用括号外的id=来翻译的。所以我只是个白痴,问题是json对象中的“#rm3”,它只需要是“rm3”,你的解决方案效果很好。谢谢!顺便说一句,
.modal.hide(id=“#{num}”)
可以简化为
.modal.hide(id=num)
exports.lb = function(req, res) {
  res.render('school', {
              title: 'Inventory', 
      "numbers": ["#rm3", "#rm4", "#rm5", "#rm6"]
});
}
 - for (num in numbers)
 .modal.hide(id="#{num}")
  .modal-header
    button.close(type="button", data-dismiss="modal", aria-hidden="true") x
    h2 Room 3
  .modal-body
    p some text