我正在尝试实施简单的测验。当我在javascript中创建我的html时,我有第一个版本。生成答案如下所示:
for(var i in answers) {
outAnswers += '<li data-answer="' + i + '">' + answers[i] + "</li>";
}
现在我尝试使用handlebars.js:
<ul id="answers">
{{#each choices}}
<li>{{this}}</li>
{/each}}
</ul>
我不知道如何在Handlebars版本中检查正确的答案。之前我刚刚添加了html数据属性并检查 if($(this).data('answer')=== correctIndex)
我的示例问题如下:
{
question: "This is example question",
choices: ["Answer1", "Answer2", "Answer3", "Answer4"],
correctAnswer: 0
}
答案 0 :(得分:1)
来自http://handlebarsjs.com:&#34;当循环遍历每个项目中的项目时,您可以选择通过{{@index}}&#34;来引用当前循环索引。因此,要使用您的模板实现您在没有它的情况下实现的目标,您的模板将变为:
<ul id="answers">
{{#each choices}}
<li data-answer="{{@index}}">{{this}}</li>
{{/each}}
</ul>