我有一个mongo文档结构如下:
Gallery
--- Sub-Gallery
------ Image
------ Image
------ Image
--- Sub-Gallery
------ Image
------ Image
.
.
.
Gallery
.
.
.
我想在屏幕上代表它。天真的实施将是:
<name template="gallery">
{{#with get_specific_gallery_helper))
{{#each sub_gallery}}
This is a gallery {{name_sub_gallery}}
{{#each image}}
Something {{name_image}}
{{/each}}
{{/each}}
{{/with}}
这种植入的问题在于每次单个图像数据发生变化时,整个Gallery
模板都会被重新渲染。
有更好的方法吗?
是否可以限制每个步骤的范围?
我想保持db结构不变(没有规范化)。
为什么我认为这是一个问题? 首先,它根本没有意义。更实用,我有特定的事件处理程序,每当渲染图库/子图库/图像时调用(例如加载图像时淡入淡出)。一直渲染所有内容会使处理这些操作变得更加困难。
答案 0 :(得分:0)
考虑r eactivity isolation:
<template name="gallery">
{{#each sub_gallery}}
{{#isolate}}
This is a gallery {{name_sub_gallery}}
{{#each image}}
{{#isolate}}
Something {{name_image}}
{{/isolate}}
{{/each}}
{{/isolate}}
{{/each}}
</template>
这将孤立区块的变化本地化为它们自己的行星类型,因此它们周围的一切都保持不变并且仍未被触及
您可能必须使用您的文档结构对其进行测试,因为如果您使用数组存储子项而不是带键的关联数组,则更新时可能会更改每个文档索引