如何在每个块的把手中获取对象的索引

时间:2014-03-15 09:19:39

标签: javascript handlebars.js

我正在尝试实施简单的测验。当我在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
}

1 个答案:

答案 0 :(得分:1)

来自http://handlebarsjs.com:&#34;当循环遍历每个项目中的项目时,您可以选择通过{{@index}}&#34;来引用当前循环索引。因此,要使用您的模板实现您在没有它的情况下实现的目标,您的模板将变为:

<ul id="answers">
    {{#each choices}}
        <li data-answer="{{@index}}">{{this}}</li>
    {{/each}}
</ul>