繁体   English   中英

把手在辅助输出上附加“未定义”

[英]Handlebars appends 'undefined' on a helper output

我有这个帮手

Handlebars.registerHelper('star-score', function(score, maxScore, options) {
    var output;

    for(var i = 1; i <= maxScore; i++) {
        if (score >= i) {
            output = output + '<span class="star full">&nbsp;</span>';
        } else {
            output = output + '<span class="star empty">&nbsp;</span>';
        }
    }

    return new Handlebars.SafeString(output);
});

基本上我想做的是通过此助手一些数字,我希望它根据数字得分来生成用户评级星

这就是我所说的助手

<div class="user-score">
    {{star-score establishment.user_score 5}}
</div>

但是有趣的是结果代码看起来像这样

<div class="user-score">
    undefined
    <span class="star full">&nbsp;</span>
    <span class="star full">&nbsp;</span>
    <span class="star full">&nbsp;</span>
    <span class="star empty">&nbsp;</span>
    <span class="star empty">&nbsp;</span>
</div>

我不知道这个“不确定”的来源。 而且我不知道如何解决它。 开发人员控制台中没有错误。 我究竟做错了什么?

循环第一次运行时输出undefined ,因此其评估结果如下

output = undefined + '<span class="star full">&nbsp;</span>';

只需将输出初始化为空字符串即可解决问题

var output = "";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM