我想在Meteor JS辅助函数中使用jQuery计算表子项的位置,但我总是得到一个空结果,因为辅助函数在插入表数据之前返回。
这是我的代码:
<table class="table">
<thead>
<tr>
<th>#</th>
<th>Game</th>
</tr>
</thead>
<tbody>
{{#each games}}
{{> game}}
{{/each}}
</tbody>
</table>
<template name="game">
<tr>
<td>{{counter}}</td>
<td>{{name}}</td>
</tr>
</template>
Template.game.helpers({
counter: function() {
return $('table.table tbody tr td:contains("this.name")').index();
}
});
应该是这样的: 1测试 2 ABC 3 HelloWorld ...
非常感谢任何帮助。
答案 0 :(得分:3)
解决方案的想法是将游戏对象添加到名为index
的附加字段中。
稍后在game
模板中,您只需使用{{index}}
。
下面的代码可以解决您的问题:
var games_with_index = Games.find().map(function(document, index){
document.index = index;
return document;
});
<table class="table">
<thead>
<tr>
<th>#</th>
<th>Game</th>
</tr>
</thead>
<tbody>
{{#each games_with_index}}
{{> game}}
{{/each}}
</tbody>
</table>
<template name="game">
<tr>
<td>{{index}}</td>
<td>{{name}}</td>
</tr>
</template>