Meteor嵌入模板导致重新渲染

Meteor嵌入模板导致重新渲染,meteor,meteor-blaze,Meteor,Meteor Blaze,在一个页面上,我想显示一个编辑器列表,并在每个编辑器下分组,这个编辑器中的书籍列表。每个编辑器都有很多书,我也有很多编辑器,必须使用与此编辑器关联的书籍得出的分数对编辑器进行排序。例如,第一位编辑是最受欢迎的书籍的编辑(我认为这是一个完全不同的问题,我怀疑我可以用一些mongodb魔法聚合来解决。请参阅最后相关问题的链接) 我想在每个编辑器下有一个“更多编辑”按钮和一个“更多书籍”按钮。我有两个收藏,一个是编辑收藏,一个是图书收藏,有一个链接回编辑,我设置了两个订阅,每个订阅都有限制。基本上我的

在一个页面上,我想显示一个编辑器列表,并在每个编辑器下分组,这个编辑器中的书籍列表。每个编辑器都有很多书,我也有很多编辑器,必须使用与此编辑器关联的书籍得出的分数对编辑器进行排序。例如,第一位编辑是最受欢迎的书籍的编辑(我认为这是一个完全不同的问题,我怀疑我可以用一些mongodb魔法聚合来解决。请参阅最后相关问题的链接)

我想在每个编辑器下有一个“更多编辑”按钮和一个“更多书籍”按钮。我有两个收藏,一个是编辑收藏,一个是图书收藏,有一个链接回编辑,我设置了两个订阅,每个订阅都有限制。基本上我的模板就是这样

<template name="onepage">
  {{#each editor in AllEditors}}
     {{editor.name}}
     {{> bookList editor }}
  {{/each}}
  <button>more editors</button>
</template>
<template name="bookList">
  {{#each book in AllBooks}}
    {{book.name}}
  {{/each}
  <button>more books</button>
</template>
书籍模板也是如此


相关问题:

当我做类似的事情时,我不会将其分成不同的模板。我使用具有父/子关系的模板帮助器

Template.page.helpers({
   groups() {
     return ...
   },
   items(parent) {
     if(parent) {
       return ...
     } else {
       return null;
     }
   }
});
html中的简单示例:

<div>
 {{#each groups}}
   {{this.groupname}}
   {{#each items this}}
     {{_id}}
   {{/each}}
 {{/each}}
</div>

{{#每组}
{{this.groupname}}
{{{#每个项目本}
{{{u id}}
{{/每个}}
{{/每个}}

只要确保groupname与items中的字段匹配,就可以将它们分组在一起。从初始限制开始,然后通过单击事件扩展该限制。这将导致编辑器列表在不刷新页面的情况下增长。我在很多领域都成功地使用了这种方法。

您能更详细地描述一下“不友好”是什么意思吗?它会闪烁,整个页面都会重新呈现。由于页面非常密集,这可能会让用户迷失方向。此外,如果我要求增加一个编辑器,我不想等到其他90个编辑器重新呈现后再看到新的编辑器。嗯,这很有趣,因为我用大量数据重新呈现整个页面,而不会闪烁。请注意,如果添加更多此模板的相应js代码?尤其是
onCreated
helpers
?@Jankapunkt:done。这是我的代码的浓缩形式,用于解释核心问题,而不会丢失其他细节。因此,上面的代码未经测试,但与我目前正在进行的工作非常相似。您愿意重新组织您的数据结构以解决此问题吗?
<div>
 {{#each groups}}
   {{this.groupname}}
   {{#each items this}}
     {{_id}}
   {{/each}}
 {{/each}}
</div>