2012-04-20 3 views
1

У меня есть древовидная структура в монго с каждым узлом, имеющим идентификатор его родителя. Что-то вроде этого:совет по структурированию шаблонов для вложенной коллекции

{ "_id" : 1 } 
{ "_id" : 2, "parent" : 1 } 

И все дерево оказывается путем предоставления каждого узла рекурсивно с помощью этих шаблонов:

<template name="thing"> 
     <div class="project open {{status}}" data-id="{{_id}}" id="thing_{{_id}}"> 
      <div class="name">{{name}}</div> 
      <div class="children" id="children_{{_id}}"> 
       {{> childrenThings }} 
      </div> 
     </div> 
</template> 

<template id="childrenThings" name="childrenThings"> 
    {{#each children}} 
     {{> thing}} 
    {{/each}} 
</template> 

где шаблон «вещь» вызывает шаблон «childrenThings», который вызывает шаблон " вещь "снова и так далее, пока все узлы не будут повторно отображены.

Теперь, когда я изменяю вложенный элемент, я вижу, что ВСЕ узлы до тех пор, пока его родительский корень не будет повторно отображен. Как мне настроить шаблоны так, чтобы только текущий шаблон был рендерирован, а не все его родительские узлы до корня?

Спасибо :)

+1

http://docs.meteor.com/#meteor_ui_chunk Может делать то, что вы хотите. '' 'Если данные, используемые для генерации этой подстроки, будут изменены, будут обновляться только элементы, соответствующие этой подстроке, а не элементы до и после нее.' '' – lashleigh

+0

@lashleigh Эта ссылка мертва, и я ищу аналогичную исправить. Есть идеи? – Tyrsius

+0

@ Tyrsius Нет, к сожалению. За последние несколько месяцев я не проводил никаких метеоров, и он быстро развивается; до v0.5.4 теперь я вижу, и я думаю, что этот комментарий был опубликован для v0.3.5. Мне, вероятно, придется перечитать документы, чтобы их догнали. http://docs.meteor.com/#reactivity Извините :( – lashleigh

ответ

0

Когда ребенок шаблоны повторного рендеринга, они стреляют вынесенный обратный вызов родителя. Поэтому это не означает, что все родительское дерево буквально было снято с DOM и снова включено. Это просто означает, что DOM-узел внутри диапазона шаблона. Это немного запутанно. Если вы заметите мерцание или какое-то другое странное поведение, это другое. Но ваш код выглядит хорошо для меня.

Смежные вопросы