В Meteor, как я могу разметить некоторый введенный пользователем текст перед его отображением?
У меня есть приложение Meteor 0.8.3 с шаблоном:
<template name="example">
Description: {{desc}}
</template>
и JavaScript:
Template.example.desc = function(){
return Session.get("desc");
}
где пользователь установил сеанс desc
,
Я хочу немного разметить текст перед его отображением, например. замена возврата каретки на <br>
и добавление некоторых разрывов слов (HTML-код ​
).
Я считаю, что я мог бы сделать это с некоторыми заменами регулярных выражений в Template.example.desc
и тройные скобки {{{desc}}}
в шаблоне - однако это открывает двери для пользователя, вводящего свой собственный html в строку, что небезопасно. Поэтому я бы хотел, чтобы Метеор сначала сделал строку безопасной, а затем применил мою разметку.
Как мне это сделать? Спасибо!
1 ответ
{{{desc}}}
это путь Я не рассматриваю это как ошибку безопасности, так как вы можете изменить только свою собственную сессию "desc". Если вы говорите о переменной, которая сохраняется в базе данных и показывается всем пользователям, более подходящей будет проверка на стороне сервера или перенос переменной с вашей разметкой перед отправкой обратно на сторону клиента.