Как декодировать HTML-сущность с помощью Handlebars

Я использую шаблонизатор Handlebars в приложении, которое я создаю, для визуализации данных, которые я получаю с сервера.

Я знаю, что по умолчанию он скрывает значения HTML и что вам нужно использовать тройные скобки{{{text}}} Для того чтобыtext: <p>Example</p> быть представленным как элемент HTML.

Проблема в том, что мне делать, если полученные данные, включая теги HTML, уже экранированы?

Итак, если я получу данные, как:

text: &lt;p&gt;Example&lt;/p&gt;

Как заставить руль перевести его и отобразить как обычный HTML?

 Quentin18 мая 2012 г., 16:21
Большинство языков шаблонов предполагают, что данные либо закодированы для целевого вывода, либо представляют собой простой текст, который необходимо кодировать. Они не приходят с «декодированием из произвольного кодирования» функции.

Ответы на вопрос(2)

как следует подHandlebars_helpers.js

Handlebars.registerHelper('encodeMyString',function(inputData){
    return new Handlebars.SafeString(inputData);
});

и использовать этот помощник в вашем.handlebar файлы или.hbs файлы следующим образом

{{encodeMyString myHTMLData}}

Без помощи Jquery вы можете использовать его в любом месте внутри руля. Даже вы можете использовать помощника для передачи данных в одиночку, который будет возвращать данные с добавленными и добавленными тегами.

Решение Вопроса

а затем передать его рулю с тройными скобками. Я знаю небольшой совет для декодирования html-сущностей с помощью jQuery:

// encoded is "&lt;p&gt;Example&lt;/p&gt" in your example
var decoded = $('<textarea />').html(encoded).val();
// decoded should now return <p>Example</p>
 13 мар. 2014 г., 17:19
Я не против проголосовать за этот ответ дважды, если смогу.
 18 мая 2012 г., 16:22
+1 за использование этого красивого хака для декодирования без необходимости.replace(/>/g, '&gt;').replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;')!
 Maverick18 мая 2012 г., 16:25
Спасибо, хороший трюк :)
 12 мар. 2015 г., 11:53
Хотя ответ верный, лучше не использовать хак jQuery для декодирования html-сущностей. Увидетьstackoverflow.com/a/11715395/1259882 Больше подробностей.

Ваш ответ на вопрос