Mustache.js获取数组的当前索引

时间:2013-05-03 14:29:48

标签: javascript arrays mustache

在初始页面加载时,我们正在加载一个带有新闻源的大型json数据对象。 我们正在使用Mustache.js并列出所有新的Feed标题,这些标题效果很好。

我们有一个div区域来显示onClick新闻项的详细信息。 由于我们已经加载了数据,我需要传递当前项的索引(数组索引)来获取我们需要获取详细信息的新闻项。

{{#Data}}
    <li>
       {{eventName}}<br />
       {{eventLocName}}<br />
       {{eventLocCity}}, {{eventLocST}}
    </li>
{{/Data}}

我想使用数组索引为

  • 添加一个id,例如

    {{#Data}}
        <li id='{{Data.index}}'>
           {{eventName}}<br />
           {{eventLocName}}<br />
           {{eventLocCity}}, {{eventLocST}}
        </li>
    {{/Data}}
    

    将数组索引导入Mustache.js模板的语法是什么?

    更新/工作

    一旦我将results放到DOM上,我就使用以下JS将'index'添加到每个数组项中。 (选择以下代码帮助答案)

    for (i in result)
    result[i].index = i;
    
  • 3 个答案:

    答案 0 :(得分:4)

    对不起......我想你需要手动添加索引:

    for (i in Data)
       Data[i].index = i;
    

    {{#Data}}
        <li id='{{index}}'>
           {{eventName}}<br />
           {{eventLocName}}<br />
           {{eventLocCity}}, {{eventLocST}}
        </li>
    {{/Data}}
    

    答案 1 :(得分:1)

    据我所知,你不能用Mustache.js做到这一点,但是你可以用Handlebars.js做到这一点,它基本上扩展了Mustaches功能。

    你可以简单地导入handlebars.js而不是mustache.js(因为它使用相同的语法并具有相同的功能,但有一些附加功能)然后执行

    {{#each Data}}
        <li id='{{@index}}'>
           {{eventName}}<br />
           {{eventLocName}}<br />
           {{eventLocCity}}, {{eventLocST}}
        </li>
    {{/each}}
    

    免责声明:我不是专家,所以如果你得到更好的答案,我不会感到惊讶。

    答案 2 :(得分:0)

    一些Mustache实现允许这样做(https://github.com/groue/GRMustache/blob/master/Guides/standard_library.md#each)。

    您可以要求胡须库的开发人员支持该功能。