จะควบคุมการเยื้องมาร์กอัปด้วย Javascript ได้อย่างไร

ฉันต้องการส่งออกรายการวนซ้ำของ:

<div class='X'>  //or plain <div> depending on boolean X
  <div class='d1'>
    <div class='d2'>
      ...
    </div>
  </div>
</div>

สคริปต์ Jade คือ:

each r in rList
   -if (X)
       div.X
          div.d1
             div.d2
   -else
       div
          div.d1
             div.d2

ฉันจะทำอย่างไรโดยใช้ d1 และ d2 เพียงชุดเดียวซึ่งเหมือนกันในทั้งสองสถานการณ์


person Old Geezer    schedule 02.12.2016    source แหล่งที่มา
comment
stackoverflow.com/questions/14144274/   -  person drinchev    schedule 02.12.2016
comment
สวัสดีขอบคุณ. ฉันสามารถแก้ไขปัญหาเฉพาะ (ง่าย ๆ ) ของฉันได้โดยการแปลงเป็นนิพจน์เงื่อนไขแบบอินไลน์ ฉันสงสัยว่ามีวิธีทั่วไปมากกว่านี้ในการระบุการเยื้องเพื่อให้ได้ลำดับชั้นที่ฉันต้องการหรือไม่   -  person Old Geezer    schedule 02.12.2016


คำตอบ (1)


each r in rList
  div(class=X ? X : '')
    div.d1
      div.d2

หรือคุณสามารถวาง 'div's:

each r in rList
  div(class=X ? X : '')
    .d1
      .d2
person Avraham    schedule 02.12.2016