0

我有一个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模板都会重新渲染。

有更好的方法吗?

是否可以在每个步骤中限制范围?

我想保持数据库结构不变(不规范化)。


为什么我认为这是一个问题?首先,它根本没有意义。更实用的是,我有特定的事件处理程序,每当呈现画廊/子画廊/图像时都会调用它们(例如,在加载时淡入图像)。一直渲染所有内容使得处理这些操作变得更加困难。

4

1 回答 1

0

考虑反应隔离

<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>

这会将隔离块中的变化本地化到它们自己的星球上,因此它们周围的一切都保持不变且未受影响,并且仍然保持反应性

但是,您可能必须使用您的文档结构对其进行测试,因为如果您使用数组而不是带有键的关联数组存储子项,则每个文档索引可能会在您更新它时发生变化

于 2013-03-17T22:01:26.757 回答