车把自定义助手卡在 "doesn't match each"
Handlebar custom helper stuck on "doesn't match each"
我想通过使用 handlebars 将某些元素设为小写(我知道 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>
我做错了什么?
我明白了。对于有同样问题的人:
<script type="text/javascript">
handlebars.registerHelper("toLowerCase", function(input) {
var output = input.toLowerCase();
return output.replace(" ", "");
});
</script>
Handlebars 首先必须有一个小写字母(例如: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>
如果车把助手名称全部小写:
<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>
调用助手的方式很重要。如果您使用散列 (#),则它被视为 Block Helper 并且需要关闭。否则你会得到那个解析错误。
{{#toLowerCase}}Some UPPERCASE text{{/toLowerCase}}
显然,辅助代码的作用也很重要。上面的语法是正确的,但代码可能达不到预期的效果。
我想通过使用 handlebars 将某些元素设为小写(我知道 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>
我做错了什么?
我明白了。对于有同样问题的人:
<script type="text/javascript">
handlebars.registerHelper("toLowerCase", function(input) {
var output = input.toLowerCase();
return output.replace(" ", "");
});
</script>
Handlebars 首先必须有一个小写字母(例如: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>
如果车把助手名称全部小写:
<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>
调用助手的方式很重要。如果您使用散列 (#),则它被视为 Block Helper 并且需要关闭。否则你会得到那个解析错误。
{{#toLowerCase}}Some UPPERCASE text{{/toLowerCase}}
显然,辅助代码的作用也很重要。上面的语法是正确的,但代码可能达不到预期的效果。