Score:1

จะเพิ่มรหัสตัวตัดคำที่ไม่ซ้ำให้กับองค์ประกอบวิดเจ็ตได้อย่างไร

ธง lb

ฉันสร้างวิดเจ็ตที่ "สร้าง" ฟิลด์ตามตัวเลือกที่เลือกจากฟิลด์ที่เลือก ฉันทำตรรกะส่วนใหญ่เสร็จแล้ว:

1- ตัวเลือกถูกเลือกจากฟิลด์นี้:

 $องค์ประกอบ['ค่า'] = [
  '#type' => 'เลือก',
  '#options' => $this->getBreakpointsGroups(),
  '#default_value' => $value,
  '#อาแจ็กซ์' => [
    'callback' => [$this,'updateBreakpoint'], // อย่าลืม :: เมื่อเรียกเมธอดคลาส
    'เหตุการณ์' => 'เปลี่ยนแปลง',
    'wrapper' => $wrapper_id, // องค์ประกอบนี้ได้รับการอัพเดตด้วยการโทรกลับ AJAX นี้
    'วิธีการ' => 'html',
  ]
];  

2- จากนั้นฟังก์ชั่น updateBreakpoint จะถูกดำเนินการและดำเนินการต่อเพื่ออัปเดตแบบฟอร์ม ก่อนอื่น ฉันจะแยกค่า wrapper ในกรณีที่มีวิดเจ็ตหลายฟอร์ม ดังนั้นจึงไม่กำหนดเป้าหมายอินสแตนซ์อื่นของฟอร์มเดียวกัน

    $state = $form_state->getTriggeringElement();
    $wrapper_id = $state['#ajax']['wrapper'];

3- หลังจากทำการเปลี่ยนแปลงบางอย่างกับแบบฟอร์ม ฉันจะส่งคืนการเปลี่ยนแปลงและใช้คำสั่ง AJAX

    $ajax_response = ใหม่ AjaxResponse();
    $ajax_response->addCommand(new HtmlCommand("div#{$wrapper_id}", $form['image_fieldset']));
    ส่งคืน $ajax_response;

wrapper ถูกกำหนดภายในฟังก์ชัน formElement ด้วยวิธีต่อไปนี้:

    $wrapper_id = Html::getUniqueId('wrapper');

ปัญหาคือไม่มีการเปลี่ยนแปลง เมื่อฉันกำหนด $wrapper_id เป็นสตริงโดยไม่มีฟังก์ชัน id เฉพาะ (เช่น 'wrapper') การเปลี่ยนแปลงจะเกิดขึ้นฉันงงว่าทำไม ฉันแน่ใจว่าได้ตรวจสอบค่าของ wrapper ที่คงอยู่ในรูปแบบทั้งหมด

berliner avatar
bd flag
ฉันคิดว่าการดูโค้ดทั้งหมดของคุณสำหรับเมธอดตัวสร้างฟอร์มและเมธอด `updateBreakpoint` จะช่วยได้
Score:0
ธง cn

หากคุณมีหลาย wrapper ในหน้าเดียวกัน คุณจะใช้ Html::getUniqueId อย่างเดียวไม่ได้ คุณต้องเพิ่มข้อมูลที่คาดการณ์ได้มากที่สุดเท่าที่มี

ตัวอย่างเช่น ในองค์ประกอบวิดเจ็ตฟิลด์เดียว คุณสามารถเพิ่มชื่อฟิลด์ พาเรนต์ฟิลด์ และเดลต้าฟิลด์:

$field_name = $this->fieldDefinition->getName();
$parents = $form['#parents'];
$prefix = implode('-', array_merge($parents, [$field_name, $delta]));

$wrapper_id = $คำนำหน้า '-ห่อของฉัน';

โพสต์คำตอบ

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