如何在 jsrender 模板中生成唯一 ID
How to generate unique id's within jsrender template
我是 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,但是每次发送单个索引数据时,我发现这很困难生成一个。
您可以使用助手 (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 模板中生成唯一 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,但是每次发送单个索引数据时,我发现这很困难生成一个。
您可以使用助手 (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++; }
});
...