Handlebars如何遍历字符串 像js中的split一样

发布于 2022-09-04 10:17:04 字数 566 浏览 20 评论 0

JS:

var val="http://www.xxx.com/1.jpg;http://www.xxx.com/2.jpg;";

for(var i = 0; i < val.split(";").length - 1; i++) {
    $("body").append("<div><img src=\""+val.split(";")[i]+"\"></div>");
}

Handlebars如何做到像上面的js那样分离字符串。

<script id="dataload_temp" type="text/x-handlebars-template">
    <div><img src="http://www.xxx.com/1.jpg"></div><!--需要遍历-->
</script>

用Helper?

Handlebars.registerHelper("pic", function(val) {
    //难道在这调用js的split再输出html?那不是直接用js更方便?
});

或者有什么其他办法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

很快妥协 2022-09-11 10:17:04
var val="http://www.xxx.com/1.jpg;http://www.xxx.com/2.jpg";

var source = "{{#each srclist}}<div><img src='{{this}}'></div>{{/each}}",
    template = Handlebars.compile(source);

var context = {srclist: val.split(";")};

$("body").append(template(context));

用模版引擎可以把模版source / template和数据val / context分离。模版可重复使用,数据则单独处理。这个例子里数据和模版都比较简单所以优势并不明显。

诗酒趁年少 2022-09-11 10:17:04

先分好再传给handlebar,或者自己实现helper

模板的实质不就是js操作吗。。。看起来当然是直接js操作dom更方便。
https://www.zhihu.com/questio...

沫尐诺 2022-09-11 10:17:04
Handlebars.registerHelper('splitAndEach', function(v1, options) {
    var items = v1.split(",");
    var out = '<option value=""></option>';
    for(var i = 0; i < items.length; i++) {
        var item = options.fn(items[i]);
        out = out + '<option value="' + item + '">' + item + '</option>';
    }
    return out;
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文