Альтернативное решение, без дурака с Mustache.js
Вместо того, чтобы дурачиться с усами, вы также можете использовать <ol></ol>
вместо <ul></ul>
, который будет добавлять к каждому элементу index+1
.
Если вы хотите, вы можете использовать css, чтобы изменить начальный номер на 0, и он будет отображаться именно так, как вы хотите. Вы можете даже изменить dot
после числа на что-то вроде " - "
, и проблема будет решена.
<ol>
<li>Mercury</li>
<li>Venus</li>
<li>Earth</li>
<li>Mars</li>
</ol>
выше будет отображаться как:
1. Mercury
2. Venus
3. Earth
4. Mars
Mustache.js способ сделать это
Правильный метод, если вы хотите сделать это усами, - преобразовать ваш массив строк в массив объектов, где присутствует индекс и строковое значение.
// I wrote this from the back of my head, it's untested and not guaranteed
// to work without modifications, though the theory behind it is valid.
var array = ["123","stackoverflow","abc"];
var obj_array = [];
for (idx in array)
obj_array.push ({'index': idx, 'str': array[idx]});
var view = {items: obj_array};
var template = "<ul>{{#items}}<li>{{index}} - {{str}}</li>{{/items}}</ul>";
var html = Mustache.to_html(template,view);