Skip to content

Шаблоны

vill edited this page Mar 28, 2018 · 1 revision

ВАЖНО. Только для компонент, структура (дерево) которых была создана с помощью хелпера define_component доступно использование BEMHTML шаблонов.

ВАЖНО. Шаблоны должны быть максимально простыми и не содержать излишней логики.

Каждый шаблон, например, template.elem(:message).replace 'Plain text' состоит из:

  1. elem(:message) - предикат
  2. replace - режим
  3. 'Plain text' - тело

Если для узла из структуры (дерева) компонента, все условия в предикате верны, тогда для этого узла будет применено тело шаблона в указанном режиме изменения данных.

Шаблоны можно создавать используя хелперы define_templates, render_component и refine_component.

Примеры шаблонов

Шаблоны по умолчанию для компонента из файла index.bemhtml.slim

= define_templates do |template|
  = template.block(:panel).add_cls :panel_default

Шаблоны при использовании render_component

= render_component :alert do |template|
  = template.block(:alert).add_cls :alert_info
  = template.elem(:message).content do |node, builder|
    span HTML content
    = node.content
    = builder.text TextNode content

Шаблоны при использовании refine_component

= refine_component :progress do |template|
  = template.block(:progress).content do |node|
    = node.content
    = node.content
    = node.content