clean_class和clean_id如何工作?


12

我是Drupal 8和Twig语法的新手。我无法理解其工作过滤器clean_class“ region | clean_class”如何工作?这里的clean_class是什么?我在page.html.twig文件中添加了以下代码

{%
  set classes = [
         'region',
         'region-' ~ region|clean_class,
       ]
%}

{{ dump(classes) }}

其打印结果:

array (size=2)
  0 => string 'region' (length=6)
  1 => string 'region-' (length=7)

Answers:


18

clean_class是一个过滤器,它调用\Drupal\Component\Utility\Html::getClass()字符串上的方法,其中:

准备一个字符串用作有效的类名。

基本上,它从HTML类中删除了无效字符以准备呈现。clean_id是HTML ID的等效项。

内核也注册了其他过滤器,有关更多详细信息,请参见TwigExtension :: getFilters


看起来在OP的示例中,region | clean_class没有返回任何内容,因为{{dump(classes)}}中的两个结果类分别是“ region”和“ region-”,我目前在尝试添加时遇到了相同的问题使用attributes.setAttribute一个分类项名称为ID(“身份证”,“特色-产业”〜名称| clean_id)如果我删除| clean_id过滤器,它只是打印“阵”
amklose
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.