2015-05-24 1 views
1

Я использую Meteor, и у меня есть шаблон, который извлекает текст из Mongo и отображает его в Materialize <p class="flow-text">. Тем не менее, я хотел бы применить форматирование к этому тексту, поэтому я хранил его в базе данных с HTML-тегами, например:Храните и извлекайте HTML-код в Mongo (т. Е. Используя <span> для форматирования текста, извлеченного из БД)

... 
"questionText" : "This question contains a <span class=\"excel-formula\">=formula</span>" 
... 

Однако, когда я показываю этот текст с помощью шаблона просто выписывает <span.... тега на экран как текст, а не применять его как HTML-тег.

Как я могу заставить его применять теги HTML, а не рассматривать их как строковые литералы?

В моих <template name="Question"> соответствующих линий:

<p class="flow-text"> 
    {{questionText}} 
</p> 

И я звоню шаблон

{{#each questions}} 
    {{#if getSessionVariable "submitted"}} 
     {{> Result}} 
    {{else}} 
     {{> Question}} 
    {{/if}} 
    {{/each}} 

где questions является

и Tests моя коллекция Монго Tests = new Mongo.Collection("tests");

+1

Используйте 'Spacebars.SafeString'. –

+0

@RaphaelSchweikert Спасибо, ваш комментарий привел меня к https://forums.meteor.com/t/how-to-return-html-tag-from-template-helper/2791, и я вижу, что если я использую тройные фигурные скобки (т.е. '{{{questionText}}}'), тогда он работает! Есть ли разница между '{{{}}} и' Spacebars.SafeString'? – Dan

ответ

3

Вы можете использовать тройные усы, чтобы контент был помещен как «как есть», только код <script> будет проигнорирован.

<p class="flow-text"> 
    {{{questionText}}} 
</p> 

 Смежные вопросы

  • Нет связанных вопросов^_^