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 に答える