我收到了itemInCollection = new Meteor.Collection('stuff')
个收藏集,我使用itemInCollection.find()
来获取其中的所有内容。现在,我迭代结果光标以在模板中显示name
属性。
<head>
<title>hello</title>
</head>
<body>
<h1>Welcome to Meteor!</h1>
{{> hello}}
</body>
<template name="hello">
<button>Click Me</button>
{{#each item}}
{{counter}} : {{name}}
{{/each}}
</template>
现在我只想在名称前面加上一个数字,比如说。
1. John
2. Doe
3. Darling
如何在辅助函数中实现计数器?我尝试了以下方法:
Template.hello.helpers({
'item': function() {
return itemInCollection.find();
},
'counter': function() {
var counter = PrimerList.find().count(),
arr = [];
for (var i = 0; i < counter; i++) {
arr.push( i + 1 );
}
return arr;
}
});
在模板中我写了这个:
{{#each item}}
{{#each counter}} {{this}} {{/each}} : {{name}}
{{/each}}
但这让我喜欢:
1 2 3 John
1 2 3 Doe
1 2 3 Darling
答案 0 :(得分:1)
以下是如何做到这一点:
Template.hello.helpers({
'item': function() {
return itemInCollection.find().map(function(document, index) {
document.index = index + 1;
return document;
});
}
});
<template name="hello">
<button>Click Me</button>
{{#each item}}
{{index}} : {{name}}
{{/each}}
</template>
答案 1 :(得分:0)
您可以在帮助中扩展您的项目,例如
items: function () {
var counter = 0;
return itemInCollection.find().map(function ( item ) {
return {
name: item.name,
counter: counter++
};
});
}