【发布时间】:2019-03-05 07:40:07
【问题描述】:
我有一个车把表达式,它给了我一个动态字符串。我想删除字母之间的空白并将其用作 div id。我知道我可以使用 JS 做到这一点。但是有没有办法在车把模板中做到这一点?
{{name}} 给了我“abc xyz”,我想要“abcxyz”字符串。
【问题讨论】:
标签: handlebars.js removing-whitespace
我有一个车把表达式,它给了我一个动态字符串。我想删除字母之间的空白并将其用作 div id。我知道我可以使用 JS 做到这一点。但是有没有办法在车把模板中做到这一点?
{{name}} 给了我“abc xyz”,我想要“abcxyz”字符串。
【问题讨论】:
标签: handlebars.js removing-whitespace
您可以自己注册一个助手并在模板中使用它来替换字符串中的空白。
Handlebars.js has a function registerHelper(String, Function)(如您所见)接受一个字符串(您的助手的名称)和一个返回助手结果的函数。
例如,如果我们想要一个在给定字符串中将“Facebook”替换为“Google”的辅助函数,您可以执行以下操作。
Handlebars.registerHelper('replace', function(string) {
return string.replace('Facebook', 'Google');
});
在模板中,我们会像 {{replace "Hello, Facebook!"}} 一样调用它,它会返回 Hello, Google!。
如果是多用途函数(在这种情况下显然应该是什么,而不是我给出的示例),您将传递要调用替换的字符串、要替换的字符串以及应该用什么来替换。
Handlebars.registerHelper('replace', function(string, search, replace) {
return string.replace(search, replace);
});
与我们之前使用{{replace "Hello, Facebook!" "Facebook" "Google"}}在模板中调用它的方式相同。
【讨论】:
如果您想避免编写自己的助手。您可以使用以下模块:https://github.com/helpers/handlebars-helpers
只需安装它
npm install --save handlebars-helpers
你很高兴,你可以使用以下助手来解决你的问题:
{{replace name " " ""}}
这是另一个用法示例:
{{replace "a b a b a b" "a" "z"}}
<!-- results in: 'z b z b z b' -->
【讨论】: