2014-01-11 2 views
2

Я немного новичок в Метеор, поэтому, возможно, это тривиальный вопрос для вас, мастеров Метеор.Метеор - Понимание вызовов шаблона «0»

Я использую шаблон, который имеет несколько дочерних шаблонов:

<template name="parent"> 
{{> child1}} 
{{> child2}} 
</template> 

Я заметил, что parent.rendered и child1.rendered функции вызываются, когда реактивные данные под child2 изменений. Мое понимание метеорных документов заключается в том, что следует называть только child2.rendered. Итак, то, что я вижу, не должно происходить, но по какой-то причине, которая находится вне меня, это так.

Чтобы исключить какой-либо шум, я потрошил child1 шаблон (чтобы содержать только пустой div). Тем не менее, его вызывается функция.

Может ли кто-нибудь дать представление?

ответ

1

Просто гипотеза здесь, но я думаю, что вся страница реверсирует при изменении любых реактивных данных. Например, если вы должны были иметь данные в Session.get('test') и единственный раз, когда значение, которое вставлено в DOM, находится в child2, я считаю, что вся страница все еще редертирует.

3

Начиная с Meteor 0.7.0.1 родительский шаблон будет повторно отображен, но дочерние шаблоны дочерних элементов не будут.

Вот простой пример Метеор приложение, которое показывает, что это в действии: https://github.com/alanning/meteor-subtemplate-isolate-test

Имейте в виду, что Meteor UI становится резкое капитальный ремонт, прежде чем Meteor 1.0 земли так много вещей может измениться в отношении того, как шаблонный работает.

+0

Это очень полезный пример. Спасибо, что придумали это. Тем не менее, в моем примере, шаблон (пустой div) sibling получает визуализацию (помимо родителя), которая отличается от поведения в вашем приложении. Интересно, что может привести к этому? – tivoni

+0

Должно быть что-то, вызывающее аннулирование (повторная визуализация). Можете ли вы разложить мой пример «meteor-subtemplate-isolate-test» и изменить его так, чтобы он там появлялся? Затем мы можем подробнее изучить, почему это происходит. – alanning

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