如何使用HandleBars输出JSON对象中数组的每个元素

时间:2018-06-25 17:00:44

标签: javascript html handlebars.js

我正在尝试在输出中输出以下数组的内容 JSON对象:

let output = {
    out:[
    ]
};

我通过执行以下操作在数组中添加内容:

for (let j = 0; j < length ; j++){
output.out[j]= "stuff" + j;
}

最后,我尝试通过使用“每个”调用输出内容:

{{#each output.out}}
        {{this}}
        <br>
    {{/each}}

如果length = 3,我想输出以下内容:

stuff0
stuff1
stuff2

我没有收到任何错误,但是什么也没输出。 对不起我的英语笨拙。

2 个答案:

答案 0 :(得分:0)

确保必须将对象或数据传递到模板。

模板:

<script id="example-template" type="text/x-handlebars-template"> 
    {{#each out}}
        {{this}}
        <br>
    {{/each}}
</script>

JavaScript:

var source = $("#example-template").html(); 
var template = Handlebars.compile(source); 
var output = {
    out:[
    ]
};
for (let j = 0; j < 10 ; j++){
     output.out[j]= "stuff" + j;
}
$('body').append(template(output));

答案 1 :(得分:0)

答案仅是声明和定义正确的一切。 我只是没有在JSON对象中定义out []数组,而是在函数中定义了这样的过程:

let output = {
};

function do(){
  output.out = [];
    for (let j = 0; j < length ; j++){
      output.out[j]= "stuff" + j;
    }
}

然后,我仅在车把部分替换了output.out。有用。 我了解在我的情况下,对象被重写并弄乱了所有东西。