Я новичок в JSrender, и у меня возникли проблемы с созданием уникальных идентификаторов в шаблоне JSrender, поскольку он в значительной степени выводит все, что написано в блоке text / x-jsrender (кроме предопределенных тегов). Вот мой код:
HTML: <div id="showjsrender"></div>
Шаблон скрипта:
<script type="text/x-jsrender id="tmpl">
<div class="displayTodo" id="displayTodo"+uniqueID+"">
..
</div>
</script>
Сценарий:
<script>
function call(variable, index){
var template = $.templates("#tmpl");
var htmlOutput = template.render(variable, index);
$("#showJSrender").html(htmlOutput);
}
</script>
JS файл (внешний файл):
app.editTask = function(e){
todoArr[e].editOn = true;
document.getElementById("displayTodo"+e+"").innerHTML = "";
editCalled(todoArr, e);
}
Я попытался отправить весь массив todoArr и повторно отрендерить весь массив и сгенерировать уникальный идентификатор, используя индекс массива (getIndex ()), но, отправляя каждый раз отдельные индексированные данные, мне было трудно их сгенерировать.
1 ответ
Вы можете использовать помощник (http://www.jsviews.com/#helpers):
<div ... id="displayTodo{{:~uniqueID()}}" >div1...</div>
<div ... id="displayTodo{{:~uniqueID()}}" >div2...</div>
...
С глобальным помощником:
var counter = 0;
$.views.helpers("uniqueID", function() { return counter++; });
...
var htmlOutput = template.render(model);
...
Или помощник, переданный вызову рендеринга:
var counter = 0;
...
var htmlOutput = template.render(model, {uniqueID:
function() { return counter++; }
});
...
Похожие вопросы
Новые вопросы
jsrender
JsRender: Шаблоны jQuery следующего поколения