ค้นหาเว็บไซต์

javascript - แทรก html ในเทมเพลตแฮนด์บาร์โดยไม่ต้องหลบหนี


มีวิธีใดบ้างที่จะใส่สตริงที่มีแท็ก HTML ลงในเทมเพลต Handlebars โดยไม่ให้แท็กถูกแปลงอักขระเมื่อได้สตริงออกมา?

template.js:

<p>{{content}}</p>

ใช้เทมเพลต

HBS.template({content: "<i>test</i> 123"})

ผลลัพธ์ที่แท้จริง:

<p>&lt;i&gt;test&lt;/i&gt; 123</p>

ผลลัพธ์ที่คาดหวัง:

<p><i>test</i> 123</p>

คำตอบ #1

ลองเหมือน

<p>{{{content}}}</p>

อ้างอิงอย่างเป็นทางการ:

Handlebars ทำการแปลงตัวอักษรพิเศษของ HTML ของค่าที่ส่งกลับโดย {{expression}}. ถ้าคุณไม่ต้องการให้ Handlebars แปลงค่า ให้ใช้ "triple-stash" {{{.

คำตอบ #2

ในเทมเพลตของคุณคุณต้องเพิ่มเครื่องหมายปีกกาแบบสามชั้นแบบนี้ <p>{{{content}}}</p>

ดูเอกสารอ้างอิงอย่างเป็นทางการเพื่อข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนั้น

คำตอบ #3

ตามเอกสารของ Handlebars:

ถ้าคุณไม่ต้องการให้ Handlebars แปลงค่าหนึ่ง ให้ใช้ "triple-stash" {{{

ส่ง HTML ดิบไปยังเทมเพลต Handlebars และรับเอาต์พุต HTML ดิบโดยใช้เครื่องหมายวงเล็บสามชั้น

{{{foo}}}

บทความที่เกี่ยวข้อง