Sisipkan html dalam templat stang tanpa melarikan diri

143

Apakah ada cara untuk memasukkan string dengan tag html ke templat setang tanpa melepaskan tag dalam string yang keluar?

template.js:

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

gunakan templat

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

hasil aktual:

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

Hasil yang diharapkan:

<p><i>test</i> 123</p>
Andreas Köberle
sumber
Kemungkinan duplikat template render Handlebars Template sebagai teks
MathKimRobin

Jawaban:

348

Coba seperti

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

Saya mendapat referensi resmi untuk mendukung jawaban saya:

Setang, HTML, lolos dari nilai yang dikembalikan oleh {{expression}}. Jika Anda tidak ingin Handlars keluar dari suatu nilai, gunakan "triple-stash" {{{,.

Praveen
sumber
27
Sekali ini, sesuatu yang sederhana .
Madbreaks
7
Jujur sepertinya hal terburuk yang bisa mereka pilih karena sulit untuk diperhatikan. Kenapa tidak sekadar sesuatu yang sederhana tetapi terlihat seperti {{ rawHtml expression }}.
danneu
1
Setuju dengan @danneu. Tolong, jangan ada sihir atau tulisan tangan yang lucu. Eksplisit lebih baik dalam jangka panjang.
Matt
29

Dalam templat Anda, Anda harus menambahkan tiga kumis seperti ini. <p>{{{content}}}</p>

Jernej Novak
sumber
11

Menurut dokumentasi Handlebars, http://handlebarsjs.com/expressions.html

Kutipan dari dokumentasi ,

Jika Anda tidak ingin Setang lolos dari nilai, gunakan "triple-simpanan", {{{

Lewati HTML mentah ke template Handlebars dan dapatkan output HTML mentah dengan menggunakan kurung tiga.

{{{foo}}}
Lorem Ipsum Dolor
sumber