0

我需要将项目显示为情侣。像这样的例子:

Template.container.couples = function() {
    var items = Items.find({}, {sort: {sort_field: 1}}).fetch();
    var couples = [];
    for (var i = 0; i < items.length; i++) {
        couples.push({
            itemA: items[i],
            itemB: items[i + 1]
        });
        i++;
    }
    return couples;
};

<template name="container">
   <ul>
       {{#each couples}}
           <li>
               <p class="item-a">{{>item itemA}}</p>
               <span>|</span>
               <p class="item-b">{{>item itemB}}</p>
           </li>
       {{/each}}
   <ul>
</template>

<template name="item">
    <strong>{{title}}</strong>
</template>

项目看起来像:

{
   sort_field: 1,
   title: 'Item 1',
   type: 'A'
},
{
   sort_field: 2,
   title: 'Item 2',
   type: 'B'
},
{
   sort_field: 3,
   title: 'Item 3',
   type: 'A'
},
{
   sort_field: 4,
   title: 'Item 4',
   type: 'B'
},
{
   sort_field: 5,
   title: 'Item 5',
   type: 'A'
}

此代码运行良好,但是当我更新其中一个项目的标题时,所有项目都会重新呈现。

如何解决?如何创建这种具有反应性的布局?

4

1 回答 1

0

从 Meteor 0.8.0 开始,Meteor 将自动仅重新渲染更改的内容。

于 2015-04-20T13:59:31.227 回答