วิธีใช้ความคิดเห็นในเทมเพลต Handlebar


137

ฉันใช้ Handlebar.js เป็นเครื่องมือสร้างเทมเพลต ตอนนี้ฉันต้องการแสดงความคิดเห็นเกี่ยวกับบล็อกบางส่วนในเทมเพลตแฮนเดิลบาร์ของฉัน แต่แล้วฉันก็รู้ว่า Handlebar ไม่ได้เพิกเฉยต่อการแสดงออกในบล็อกความคิดเห็นของ Handlebar วิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่?


คำขอดึงนี้อาจสนใจคุณ
Frédéric Hamidi

สนับสนุนความคิดเห็นหลายบรรทัด แต่ไม่เพิกเฉยต่อการแสดงออกที่อยู่ภายใน
Abhidev

คำตอบ:


206

Handlebars รุ่นใหม่ล่าสุดมีการรองรับการบล็อกความคิดเห็น:

{{!-- {{commented expressions}} --}}

https://github.com/wycats/handlebars.js/commit/a927a9b0adc39660f0794b9b210c9db2f7ddecd9


8
ขอบคุณ jptsetung มันทำงานได้ไม่เต็มที่ตามที่ฉันคาดหวังความคิดเห็น แต่ฉันคิดว่ามันใช้ได้ตามวัตถุประสงค์ที่ตั้งใจไว้ ดูบทช่วยสอนนี้เพื่อดูว่าแฮนด์ทำงานอย่างไรเบื้องหลัง net.tutsplus.com/tutorials/javascript-ajax/… . ดูเหมือนว่าแฮนด์บาร์จะไม่เพิกเฉยต่อบรรทัดที่แสดงความคิดเห็นเนื่องจากยังคงสร้างโทเค็นอยู่ โทเค็นว่างเปล่า ตัวอย่างเช่น "{{! - Hello {{name}} -}}" สร้างโทเค็นว่าง 1 รายการ แค่คิดว่ามันคุ้มที่จะพูดถึงหากมันทำให้เกิดปัญหากับใคร ไม่รู้ว่ามันจะเป็นเบื้องหลังหรือเปล่า
isimmons

51

เพียงเพิ่มเครื่องหมายอัศเจรีย์หลังวงเล็บเปิด

นิพจน์ปกติ:

{{expressions}}

การแสดงความคิดเห็น:

{{!expressions}}

25
โปรดทราบว่าความแตกต่างระหว่าง{{!และ{{!--รูปแบบคือเฉพาะหลังเท่านั้นที่อนุญาตให้ใช้แท็กแฮนด์บาร์แบบฝังได้ เนื่องจากจะง่ายต่อการลืมโดยเฉพาะอย่างยิ่งในความคิดเห็นยาว ๆ ที่มีการแก้ไขในภายหลังฉันขอแนะนำให้ใช้แบบฟอร์มความคิดเห็นที่ยาวกว่าเสมอ
Darren Cook

32

ใช้วิธีนี้ในไฟล์เทมเพลตแฮนเดิลบาร์ของคุณ

<div class="entry">
  {{!-- only output author name if an author exists --}}
  {{#if author}}
    <h1>{{author.firstName}} {{author.lastName}}</h1>
  {{/if}}
</div>

ความคิดเห็นจะไม่อยู่ในผลลัพธ์ที่เป็นผลลัพธ์ หากคุณต้องการให้แสดงความคิดเห็นให้ใช้ความคิดเห็น HTML

<div class="entry">
  {{! This comment will not be in the output }}
  <!-- This comment will be in the output -->
</div>

อ้างอิงลิงค์นี้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.