Когда я должен использовать {{attribute}} в ветке, а не в жестких атрибутах? - PullRequest
0 голосов
/ 09 февраля 2019

Я читал о разработке шаблонов в Drupal.(https://www.drupal.org/docs/8/theming-drupal-8/using-attributes-in-templates)

Drupal рекомендует создать объект атрибутов с create_attribute() и использовать созданный им объект для объявления атрибутов в элемент html.Например:

<div{{ create_attribute({'class': ['region', 'region--header']}) }}>
  {{ content }}
</div>

Где я обычно просто использую:

<div class='region region--header'>
  {{ content }}
</div>

Я могу представить, что это может быть полезно, если вам нужно добавить атрибуты, используя некоторую условную логику.Но я бы не хотел, чтобы в шаблоне было слишком много логики.

Я, наверное, здесь упустил что-то важное.Может кто-нибудь уточнить, какие преимущества использования create_attribute() перед классами жесткого кодирования?Когда я должен использовать подход create_atribute()?Каков общий сценарий, когда create_attribute() пригодится?

1 Ответ

0 голосов
/ 10 февраля 2019

IMHO, в вашем примере нет никакой выгоды от create_attribute (), потому что значения атрибутов все еще жестко закодированы в функции create_attribute ().

Это гораздо полезнее, если атрибуты хранятся в переменной, которой можно манипулироватьв (расширенных) шаблонах с такими функциями, как addClass, removeClass, setAttribute, ... Например, мы определяем массив атрибутов (в ветке или в процессорах) для данного элемента html, и вы просто визуализируете атрибуты с помощью <div {{ create_attribute(attributes_for_this_div) }}></div>.

В ядре Drupal или в часто используемых модулях я не нашел ни одного примера create_attribute () с жестко заданными атрибутами.

...