Más contenido relacionado Similar a Шаблонизатор BEMHTML (8) Más de Varya Stepanova (12) Шаблонизатор BEMHTML5. <ul>
[% IF weather %]
<li>[% weather.temp %]</li>
[% END %]
[% IF traffic %]
<li>[% traffic.level %]</li>
[% END %]
</ul>
9. <ul>
[% IF weather %]
<li>[% weather.temp %]</li>
[% END %]
[% IF traffic %]
<li>[% traffic.level %]</li>
[% END %]
[% IF mail %]
<li>[% mail.unread %]</li>
[% END %]
</ul>
10. <ul>
[% IF weather %]
<li><i>
[% weather.temp %]
</i></li>
[% END %]
[% IF traffic %]
<li><i>
[% traffic.level %]
</i></li>
[% END %]
</ul>
13. data ctx
BlackBox
view ctx
BlackBox
HTML
14. data ctx
BlackBox
view ctx
BEMHTML
HTML
15. var items = [];
if(weather) items.push({
elem: 'item',
content: weather.temp });
if(traffic) items.push({
elem: 'item',
content: traffic.level });
return {
block: 'menu',
content: items };
16. block menu
elem item
weather.temp
elem item
traffic.level
18. block menu, elem item {
tag: 'li'
content: {
tag: 'i',
content: this.ctx.content }
}
24. [% BLOCK menu %]
<ul>
[% FOREACH item IN items %]
<li>[% item %]</li>
[% END %]
</ul>
[% END %]
26. [% BLOCK menu %]
<ul>
[% FOREACH i IN items %]
[% PROCESS item content = i %]
[% END %]
</ul>
[% END %]
28. block menu, elem item, content: {
block: 'icon',
content: this.ctx.content
}
30. block menu,
elem item,
this.ctx.bla,
content: 'bla'
39. data ctx
BlackBox
БЭМ-дерево
BEMHTML
HTML