我有一个名为Tasks
我想在模板上显示它们,每隔2个包裹一个div。
这样的事情
<div>
{{task 1}}
{{ task 2 }}
</div>
<div>
{{task 3}}
{{ task 4 }}
</div>
我如何在Meteor中做到这一点?
答案 0 :(得分:0)
使用帮助器来定义要迭代的内容 - 在这种情况下,您可以执行类似返回包含要显示的第一个和第二个任务的对象数组的操作:
<template name='whatever'>
{{#each getTasksToIterate}}
<div>
{{> task firstTask}}
{{> task secondTask}}
</div>
{{/each}}
然后,在您的助手中,定义函数getTasksToIterate
:
Template.whatever.helpers({
getTasksToIterate: function() {
var tasks = [];
_.each(this.tasks, function(task, index) {
if (index % 2 === 0) { // Pick the odd ones
tasks.push({firstTask: elem, secondTask: this.tasks[index + 1]});
}
return tasks;
}
});
请注意,这假设您拥有偶数个任务;如果你偶尔有一个奇数,你需要用适当的if语句等处理它。