从车把模板中删除<br/>

时间:2016-05-05 13:38:36

标签: javascript templates replace handlebars.js helper

我有一个由CMS驱动的数据库填充的模板。 CMS中输入数据的人并不真正了解HTML,他们只是说他们这样做。因此,他们将输入一系列中断标记(错误地,提醒您),而不是仅将其内容包装在段落中。

然后我将所有这些导入到一个整洁的小模板中,并使用该数据填充数据标签以显示在按钮和其他内容上。

我见过一些Handlebars Helpers,他们说他们会进行查找和替换,但我不知道如何在我的模板中编写语法,用grunt编译它而不会标记错误。这是我想要使用的助手:

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

现在看起来非常直截了当,但除了{{#replace}}

之外,没有关于如何在模板中真正抛出藏匿的文档

我试图查看的参数是{{caption}},我正在寻找'
'的实例并将其替换为''。

当我写这样的藏匿处时:{{#replace'<br>','',caption}},但我得到一个解析错误。

1 个答案:

答案 0 :(得分:1)

我不确定在这种情况下你是否想要使用块助手。我认为以下常规助手会这样做:

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

请注意,我使用的是RegExp,以便我们可以替换find文本的所有实例。

然后,您可以通过以下方式在模板中使用此帮助程序:

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