2016-05-05 1 views
0

Я довольно новичок в руле, поэтому, пожалуйста, со мной.Удаление <br> от Handlebars Template

У меня есть шаблон, который заполняется из базы данных, управляемой CMS. CMS, где люди, которые вводят данные, действительно не знают HTML, они просто говорят, что они это делают. Таким образом, они войдут в серию разрывающих тэгов (неправильно, заметьте) вместо того, чтобы просто обернуть их содержимое в абзаце.

Затем я импортирую все это в аккуратный маленький шаблон и используя эти данные для заполнения меток данных для отображения на кнопках и других вещах.

Я видел несколько помощников Handlebars, которые говорят, что они находят и заменяют, но я понятия не имею, как написать синтаксис в моем шаблоне, чтобы скомпилировать его с помощью grunt без его пометки ошибок. Вот помощник я хотел бы использовать:

Handlebars.registerHelper('replace', function(find, replace, options) { 
    var string = options.fn(this); 
    return string.replace(find, replace); 
}); 

Теперь это выглядит довольно прямо вперед, но нет никакой документации о том, как на самом деле бросить тайник в шаблоне, кроме {{#replace}}

Параметр Я пытаюсь просмотреть {{caption}}, и я ищу экземпляр «
» и заменим его на «».

Когда я пишу тэш следующим образом: {{#replace '<br>', '', caption}}, но затем я получаю ошибку синтаксического анализа.

Заранее спасибо.

ответ

1

Я не уверен, что вы захотите использовать блок-помощник в этой ситуации. Я думаю, что следующий регулярный помощник будет делать:

Handlebars.registerHelper('replace', function (find, replace, context) { 
    return context.replace(new RegExp(find, 'g'), replace); 
}); 

Обратите внимание, что я использую RegExp, так что мы можем заменить все экземпляров find текста.

Вы бы затем использовать этот помощник в шаблоне следующим образом:

{{replace '<br>' ' ' caption}} 
+0

... теперь я получаю «неперехваченную Ошибку: Отсутствует помощник:" заменить», и я просто положить его в шаблон до блоков Handlebar – Murphy1976

+0

Что означает «положить его в шаблон»? – 76484

+0

У меня есть блоки Javascript в верхней части шаблона, чтобы установить все функции, и блок javascript внизу, который работает на готовом документе. в фактическом теле шаблона используется разметка рулей. – Murphy1976