我正在开发一个允许用户输入列表的小项目,然后遍历列表,测量每个列表项上花费的时间。目前我无法识别各个列表元素以分别为它们分配,增量函数应该为每个列表条目添加唯一ID,但它似乎冻结在第一个列表项上并无限增加。任何人都有人建议为什么会出现这种情况或更好的解决方案? (请原谅可怕的Javascript)谢谢!
HTML:
<body>
<ul>
{{#each travellists}}
{{> travellist}}
{{/each}}
</ul>
</body>
<template name="travellist">
<li style="list-style-type: none;" class = "{{selectedClass}}">
<button class="delete">×</button>
{{text}}
<div>{{increment}}</div>
{{#if isTrue}}
<div class="timer"> {{listtime}} </div>
{{/if}}
</li>
</template>
javascript是:
Template.travellist.helpers({
//return time elapsed for list item
'listtime': function(){
return runtime=((timer.time.get()/1000)%10).toFixed(2);
},
//change class name of selected item
'selectedClass': function(){
var listid = 0;
listid++;
return listid;
},
//increment session counter and return value for list
'increment': function(){
Session.set("counter", Session.get("counter")+1);
return Session.get("counter");
},
});
答案 0 :(得分:0)
这里的问题是increment
助手依赖于被动会话变量计数器,因此每次counter
被更改increment
重新运行,导致它自{{1}无限增加}}正在改变counter
助手。
最好删除该行:
increment
并仅映射Session.set("counter", Session.get("counter")+1);
以包含索引字段。例如,如果travellists
作为名为travelists
的游标返回,则返回:
myCursor
。
myCursor
现在,在迭代myCursor.map(function(currentDoc, index, thisCursor){
currentDoc.index = index;
return currentDoc;
}
时,调用travellists
将返回此文档的索引。