如何在jsrender模板中生成唯一ID

时间:2016-03-03 05:21:08

标签: jsrender

我是JSrender的新手,无法在JSrender模板中生成唯一ID,因为它几乎输出了在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())生成唯一ID,但每次发送单个索引数据时,我都会这样做。我发现很难生成一个。

1 个答案:

答案 0 :(得分:0)

您可以使用助手(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++; }
});
...