我正在阅读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()
派上用场的常见情况是什么?
答案 0 :(得分:0)
恕我直言,在您的示例中,create_attribute()没有任何好处,因为属性值仍在create_attribute()函数中进行了硬编码。
如果将属性保存在一个变量中,该变量可以用(例如)addClass,removeClass,setAttribute等功能在(扩展的)模板中进行操作,则此方法会更加有用。例如,我们定义了属性数组(在枝条或处理器中),用于给定html元素,您只需使用<div {{ create_attribute(attributes_for_this_div) }}></div>
呈现属性。
在Drupal核心或常用模块中,我没有找到带有硬编码属性的create_attribute()的单个示例。