Ответ 1
Вы должны пометить строку как html в своем помощнике, если хотите, чтобы Handlebars не удалялись. Используйте Handlebars.safeString
для этого. Нижеследующее должно соответствовать вашим потребностям.
Handlebars.registerHelper('splitQuote', function(string) {
if (string.indexOf('|') !== -1) {
return new Handlebars.SafeString(string.replace('|', '<span>') + '</span>');
}
return string;
});
Как уже упоминалось в комментариях, вы, вероятно, должны избегать переданной строки, используя Handlebars.Utils.escapeExpression(string)
, чтобы закодировать строку перед тем, как сделать свое собственное форматирование. Я бы рекомендовал написать вот так:
Handlebars.registerHelper('splitQuote', function(string) {
string = Handlebars.Utils.escapeExpression(string);
if (string.indexOf('|') !== -1) {
string = string.replace('|', '<span>') + '</span>';
}
return new Handlebars.SafeString(string); // mark as already escaped
});