我试图创建一个名为replace的帮助器。我知道已有一个,但对于我的生活,我似乎无法弄清楚如何更换一部分字符串并返回其余部分
<div class="entry">
<h1>{{#replace "&" title}}and{{else}}{{/replace}}
</h1>
<div class="body">
{{body}}
</div>
</div>
{
title: "The Amazing Red & Tshirt",
body: "This is a short story about the red t-shirt"
}
辅助
Handlebars.registerHelper('replace', function( find, replace, options) {
var string = options.fn(this);
return string.replace( find, replace );
});
我似乎能做的就是替换整个字符串,而不是字符串的一小部分。在这种情况下,取代&amp;用词和符号。
我确定这很容易,但除了用单词和替换整个块之外,我似乎无能为力。
任何建议都非常感谢
答案 0 :(得分:3)
什么是var string = options.fn(this);
在帮助者内部受到什么影响,比如两个括号结构之间:
{{#helperName}}this{{/helperName}}
那么你现在正在做的帮助电话是:
find = '&'
this = 'and'
title = 'The Amazing Red & Tshirt'
。你应该做的就是用这种方式打电话给你的助手:
{{#replace "&" "and"}}{{title}}{{/replace}}
请注意整个实体作为参数而不是单个&amp; 字符传递。