Score:0

ฉันสูญเสียคำแนะนำเทมเพลตเมื่อมีการเรียกเหตุการณ์ ajax

ธง de

ฉันกำลังสร้างคำแนะนำธีมตามโมดูล 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 หรือไม่

ขอบคุณ.

4uk4 avatar
cn flag
ในการเรียกกลับ Ajax เฉพาะส่วนไดนามิกของแบบฟอร์มเท่านั้นที่แสดงผลและแทนที่ สิ่งนี้ไม่ควรส่งผลกระทบต่อ formdazzle เนื่องจากสิ่งนี้มีไว้สำหรับองค์ประกอบอินพุตและสำหรับองค์ประกอบที่ถูกแทนที่ด้วย แต่สิ่งที่อยู่ใน #pre_render callback วางไว้ที่อื่นไม่ได้เหรอ?
Alfred Armstrong avatar
cn flag
คำแนะนำของธีมควรเป็นแบบคงที่ ไม่ควรขึ้นอยู่กับคุณสมบัติไดนามิกที่เปลี่ยนแปลงในการแสดง คุณควรสร้างผ่าน hook_X_suggestions_alter ไม่ใช่ผ่าน pre_render หากนั่นคือสิ่งที่คุณกำลังทำอยู่
chalo avatar
de flag
@AlfredArmstrong ฉันเข้าใจสิ่งที่คุณพูดถึง ขณะที่ฉันแสดงความคิดเห็น ใน pre_render สิ่งที่ทำคือการให้ข้อมูลเพิ่มเติมเพื่อให้ hook_X_suggestions_alter สามารถเพิ่มคำแนะนำเพิ่มเติมได้ ในที่สุดคำแนะนำก็มาจาก hooks เหล่านี้
Alfred Armstrong avatar
cn flag
ใช่ แต่การเรนเดอร์ล่วงหน้าไม่ได้ถูกเรียกใช้ทุกครั้ง ดังนั้นจึงใช้งานไม่ได้ hook_suggestions_alter จะต้องอยู่ในตัวเอง โดยได้รับทุกสิ่งที่ต้องการจากพารามิเตอร์ที่ส่งไปยังมัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา