clean_class และ clean_id ทำงานอย่างไร


13

ฉันใหม่สำหรับไวยากรณ์ 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)

คำตอบ:


19

clean_classเป็นตัวกรองที่เรียกใช้\Drupal\Component\Utility\Html::getClass()เมธอดบนสตริงซึ่ง:

เตรียมสตริงสำหรับใช้เป็นชื่อคลาสที่ถูกต้อง

โดยทั่วไปจะลบอักขระที่ไม่ถูกต้องออกจากคลาส HTML เพื่อเตรียมการแสดงผล clean_idเทียบเท่ากับรหัส HTML

มีตัวกรองอื่น ๆ ที่ลงทะเบียนโดย core เช่นกันดูTwigExtension :: getFiltersสำหรับรายละเอียดเพิ่มเติม


ดูเหมือนว่าในตัวอย่างของ OP, region | clean_class ไม่ได้ส่งคืนอะไรเนื่องจากทั้งสองคลาสที่เป็นผลลัพธ์ใน {{dump (คลาส)}} คือ 'region' และ 'region-' ฉันกำลังมีปัญหาเดียวกันพยายามเพิ่ม ชื่อระยะอนุกรมวิธานเพื่อประชาชนได้ใช้ attributes.setAttribute (id '', 'เข้าร่วม-อุตสาหกรรม' ~ ชื่อ | clean_id) ถ้าผมเอา | กรอง clean_id ก็แค่พิมพ์ 'อะเรย์'
amklose
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.