Подтвердить что ты не робот

Есть ли способ установить счетчик в итерации усов?

У меня есть код, который отображает шаблон усы с некоторыми итерациями вроде:

{{#items}}
  some html code....
{{/items}}

но я хочу поместить в итерацию количество отображаемого элемента, например:

{{#items}}
  This is the item [COUNTER-VAR]
{{/items}}

Есть какой-то способ выполнить это.

4b9b3361

Ответ 1

Ручки больше не нужны. Вы можете использовать разделы высокого порядка в текущих усах. В основном это позволяет вам вызвать функцию с содержимым раздела в качестве аргумента. Если этот раздел находится внутри итерации, он будет вызываться для каждого элемента в итерации.

Данный шаблон (хранится в теге script для удобства и ясности)

<script type="text/html" id="itemview">
    <table width="100%" border="0" cellspacing="0" cellpadding="3">
        <tbody>
            {{#items}}
                <tr>
                    <td>{{#count}}unused{{/count}}</td>
                    <td>{{.}}</td
                </tr>
            {{/items}}
        </tbody>
    </table>
</script>

... и следующий код, вы можете создать нумерованный список.

function buildPage(root)
{
    var counter = 0;
    var data = {
        'items': [ 'England', 'Germany', 'France' ],

        'count' : function () {
            return function (text, render) {
                // note that counter is in the enclosing scope
                return counter++;
            }
        }
    };

    // fetch the template from the above script tag
    var template = document.getElementById('itemview').innerHTML;
    document.getElementById("results").innerHTML = Mustache.to_html(template, data);
}

Вывод:   0 Англия   1 Германия   2 Франция

Ответ 2

Используйте {{@index}} внутри итерации.

{{#data}}
    <p>Index is {{@index}}</p>
{{/data}}