2014-01-17 6 views
0

Согласно документации Meteor, изменение элементов внутри #isolate блока не приведет к повторному рендерингу родительского шаблона, но я столкнулся с другим поведением для следующего примера, где оба «привет» 'и 'а' вновь делает, когда я изменить 'название':Метеор: изменение подматрицы без повторного рендеринга родительского шаблона

<head> 
    <title>testing</title> 
</head> 

<body> 
    {{> hello}} 
</body> 

<template name="hello"> 
{{#isolate}} 
    {{> a}} 
{{/isolate}} 

{{#isolate}} 
    {{> b}} 
{{/isolate}} 

</template> 

<template name='a'> 
a: {{title}} 
</template> 

<template name='b'> 
b: {{desc}} 
</template> 

Вот Javascript

if (Meteor.isClient) { 
    Template.hello.rendered = function() { 
    console.log('hello') 
    }; 

    Template.a.rendered = function() { 
    console.log('a') 
    }; 

    Template.b.rendered = function() { 
    console.log('b') 
    }; 

    Handlebars.registerHelper('title', function() { 
    return Session.get('title'); 
    }); 

    Handlebars.registerHelper('desc', function() { 
    return Session.get('desc'); 
    }); 

} 

Могу ли я что-то искажая? Я видел аналогичный, но без ответа вопрос: Meteor: Changing a subtemplate without changing parent template

+0

Обратите внимание, что '{{#isolate}}' [больше] (https://github.com/meteor/meteor/wiki/Use-Blaze # no-more-constant-isolate-or-preserve) из [Spacebars] (https://github.com/meteor/meteor/blob/devel/packages/spacebars/README.md). –

ответ

1

Да, родительский шаблон будет повторно отображен, потому что его нужно перерисовать.

Хотя бы отрезок внутри бита {{#isolate}} был бы изменен (содержащий шаблон a), шаблон hello был бы изменен, поэтому вызывается повторная визуализация.

Каждый раз, когда HTML-код шаблона изменяется механизмом рендеринга Spark (текущая версия, которая управляет системой шаблонов метеор), вызывается .rendered().

В новом двигателе рендеринга Shark, .rendered() вызывается только один раз, при начальной нагрузке. Это может быть больше того, что вы ищете, но его все еще в предварительном выпуске

+0

Спасибо, я загляну в новый двигатель. https://github.com/meteor/meteor/wiki/New-Template-Engine-Preview#fine-grained-updates-that-play-nicely-with-jquery – user2191332

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