ฉันกำลังสร้างคำแนะนำธีมตามโมดูล formdazzle ฉันสร้างตัวแปรของตัวเองเพราะฉันต้องการรายละเอียดอีกระดับของชื่อธีมและมันก็ใช้ได้ดี
ใน alter hook ฉันมีคีย์ #pre_render และวิธีการสร้างคำแนะนำ:
ตัวอย่าง
$form['#formdazzle'] = ['form_id' => $form_id];
// เพิ่มฟังก์ชัน pre-render ที่ส่วนท้ายของรายการ
ถ้า (!isset($form['#pre_render'])) {
$form['#pre_render'] = [];
}
$form['#pre_render'][] = [self::class, 'preRenderForm'];
เมื่อแบบฟอร์มโหลดคำแนะนำทำงานได้ดี ตอนนี้ฉันมีย่อหน้าและปุ่มสำหรับเพิ่มองค์ประกอบย่อหน้าเพิ่มเติม เมื่อฉันคลิก Ajax จะถูกดำเนินการตามค่าเริ่มต้น และสร้างองค์ประกอบใหม่ แต่คำแนะนำของธีมจะไม่ถูกสร้างใหม่ และคำแนะนำใหม่ มาร์กอัปที่ถูกแทนที่ไม่ใช่อันที่ถูกต้อง (ใช้คำแนะนำเริ่มต้นของ drupal)นั่นคือฉันสูญเสียมาร์กอัปทั้งหมดของเทมเพลต
เมื่อทำการทดสอบ ฉันสังเกตเห็นว่าเมื่อเหตุการณ์ ajax ถูกดำเนินการ ฟังก์ชัน pre_render จะไม่ถูกดำเนินการอีก และนั่นเป็นสาเหตุที่คำแนะนำไม่ถูกสร้างขึ้นอีก
มีวิธีทำให้ pre_render รีรันหลังจากเหตุการณ์ Ajax หรือไม่
ขอบคุณ.