2013-03-17 82 views
0

子文檔我有一個蒙戈的文檔結構如下:限制反應範圍流星

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

考慮[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> 

這本地化的分離塊改變他們自己的排序星球所以周圍的一切保持原樣,原封不動,它仍然反應

您可能需要因爲如果使用數組而不是關聯數組存儲具有數組的子項,而不是使用關鍵字

+0

,則在更新它時每個文檔索引可能會發生變化但是在{{{block}}中沒有數據依賴關係當獲取整個文檔時,唯一的依賴關係在頂層作用域(請參閱編輯後的'with'子句)。如果我理解正確,那麼在隔離區塊中沒有任何東西可以隔離。 – Xyand 2013-03-17 22:19:06

+0

這就是爲什麼我對你的文檔結構有點不確定,如果你可以測試它,它可能是導致它重新呈現孤立點的索引,它也會查找對象的變化,它只是假裝裏面的東西是在不同的模板 – Akshat 2013-03-17 22:25:52

+0

它應該工作,如果你編輯的圖像,但我有點不確定當你添加/刪除一個圖像(因爲一些索引改變),但它不會重新,渲染整個事物只有數組改變的部分 – Akshat 2013-03-17 22:27:02