-
Notifications
You must be signed in to change notification settings - Fork 48
BEMTREE
Slava Oliyanchuk edited this page Feb 11, 2016
·
2 revisions
TBD
Рассмотрим пример:
// Шаблоны
block('b1').content()(function() {
this.wtf = 'fail';
return this.reapply({ block: 'b2' });
});
block('b2').content()(function() {
return this.wtf || 'ok';
});
// BEMJSON
{ block: 'b1' }
// Результат шаблонизации:
{ block: 'b1', content: { block: 'b2', content: 'fail' } }
this.reapply() возвращает { block: 'b2', content: 'ok' }
как и должен. Затем этот объект передается в .renderContent
, но с this
от b1
, который содержит this.wtf
равный fail
. renderContent
рендерит контент как fail в соответствии с вторым шаблоном в примере.
Так что эта особенность: ожидаемое поведение. Вы возвращаете объект с BEMJSON и если в контент моде используется this, то шаблоны будут обращаться к нему как к BEMJSON для рендеринга содержимого.
Эта разница в работе reapply в BEMHTML и BEMTREE из-за того, что в BEMHTML reapply возвращает строку, а в BEMTREE — объект BEMJSON.
См issue #126 и #189