我想通过使用把手使某些元素小写(我知道它可以用CSS,但你不能为类名做这些)。无论如何,我收到了这个错误:
Uncaught Error: toLowerCase doesn't match each
我的代码:
<script id="icon-template" type="text/x-handlebars-template">
{{#each results}}
<li>
<div class="content">
<i class="Icon icon-{{#toLowerCase contentType}}"></i>
</div>
</li>
{{/each}}
</script>
自定义助手:
<script type="text/javascript">
Handlebars.registerHelper("toLowerCase", function(input) {
var output = input.toLowerCase();
return output.replace(" ", "");
});
</script>
我做错了什么?
答案 0 :(得分:14)
我明白了。对于任何有同样问题的人:
<script type="text/javascript">
handlebars.registerHelper("toLowerCase", function(input) {
var output = input.toLowerCase();
return output.replace(" ", "");
});
</script>
把手首先必须有一个小写字母(如:handlebars
)使用自定义帮助程序时不需要#标签。因此,自定义助手现在是toLowerCase
而不是#toLowerCase
<script id="icon-template" type="text/x-handlebars-template">
{{#each results}}
<li>
<div class="content">
<i class="Icon icon-{{toLowerCase contentType}}"></i>
</div>
</li>
{{/each}}
</script>
答案 1 :(得分:14)
如果把手助手名称全部为小写:
<script type="text/javascript">
handlebars.registerHelper("lower", function(input) {
var output = input.toLowerCase();
return output.replace(" ", "");
});
</script>
调用它时需要使用哈希:
<script id="icon-template" type="text/x-handlebars-template">
<i class="Icon icon-{{#lower contentType}}"></i>
</script>
如果帮助程序使用CamelCase名称:
<script type="text/javascript">
handlebars.registerHelper("toLowerCase", function(input) {
var output = input.toLowerCase();
return output.replace(" ", "");
});
</script>
然后你不使用哈希:
<script id="icon-template" type="text/x-handlebars-template">
<i class="Icon icon-{{toLowerCase contentType}}"></i>
</script>
答案 2 :(得分:0)
如何调用帮助程序很重要。如果您使用哈希(#),则将其视为Block Helper,需要将其关闭。否则,您将收到该解析错误。
{{#toLowerCase}}Some UPPERCASE text{{/toLowerCase}}
显然,帮助程序代码的作用也很重要。上面的语法正确,但是代码可能无法达到预期的效果。