Вставить html в шаблон руля без экранирования


150

Есть ли способ вставить строку с тегами html в шаблон ручек без экранирования тегов в исходящей строке?

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>

Ответы:


367

Попробуйте как

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

официальная ссылка :

Handlebars HTML-экранирование значений, возвращаемых a {{expression}}. Если вы не хотите , чтобы избежать Рулей значения, использовать «тройную заначку», {{{.


28
На этот раз что-нибудь простое .
Madbreaks

8
Честно говоря, это худшее, что они могли выбрать, так как это трудно заметить. Почему не что-то простое, а наглядное вроде {{ rawHtml expression }}.
danneu

1
Согласитесь с @danneu. Никакого волшебства или милой стенографии, пожалуйста. Явный лучше в долгосрочной перспективе.
Мэтт


13

Согласно документации Handlebars, http://handlebarsjs.com/expressions.html

Цитата из документации ,

Если вы не хотите, чтобы Handlebars экранировал значение, используйте "triple-stash", {{{

Передайте необработанный HTML в шаблон Handlebars и получите необработанный вывод HTML, используя тройные скобки.

{{{foo}}}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.