search

Home  >  Q&A  >  body text

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

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("<p><img src=\""+val.split(";")[i]+"\"></p>");
}

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

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

用Helper?

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

或者有什么其他办法?
黄舟黄舟2784 days ago638

reply all(2)I'll reply

  • 黄舟

    黄舟2017-04-11 11:27:29

    var val="http://www.xxx.com/1.jpg;http://www.xxx.com/2.jpg";
    
    var source = "{{#each srclist}}<p><img src='{{this}}'></p>{{/each}}",
        template = Handlebars.compile(source);
    
    var context = {srclist: val.split(";")};
    
    $("body").append(template(context));

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

    reply
    0
  • 怪我咯

    怪我咯2017-04-11 11:27:29

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

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

    reply
    0
  • Cancelreply