บล็อกด้านใน

บล็อกด้านในคือบล็อกที่แนบมากับอินพุตค่าและคำสั่ง เครื่องมือสร้างโค้ดบล็อกแต่ละรายการต้องจัดการกับการต่อบล็อกภายในเข้าด้วยกันเพื่อให้เพิ่มโค้ดในตําแหน่งที่ถูกต้อง

import {javascriptGenerator, Order} from 'blockly/javascript';

javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
  // Generate innner block code.
  const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
  const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

  // Concatenate the string.
  const code = `some code ${statement} ${value} some more code`;

  // Return the code.
  return code;
}

อินพุตคำสั่ง

คุณจะสร้างโค้ดของบล็อกภายในที่แนบกับอินพุตคำสั่งได้โดยใช้ statementToCode ซึ่งจะเรียกใช้เครื่องมือสร้างโค้ดบล็อกของบล็อกคำสั่งและจัดการโค้ดการเยื้อง

const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');

คุณแค่ต้องเรียก statementToCode สำหรับบล็อกภายในที่เชื่อมต่อกับอินพุตคำสั่งโดยตรงเท่านั้น

อินพุตค่า

คุณจะสร้างโค้ดของบล็อกภายในที่แนบกับอินพุตค่าได้โดยใช้ valueTocode ซึ่งจะเรียกใช้เครื่องมือสร้างโค้ดบล็อกของบล็อกค่า และจัดการการเพิ่มวงเล็บรอบโค้ดของบล็อกภายในเมื่อจำเป็น

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีควบคุมวงเล็บได้ในเอกสารประกอบเกี่ยวกับวงเล็บ

const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

เชื่อมต่อรหัส

เมื่อได้รับสตริงโค้ดของบล็อกภายในแล้ว คุณสามารถเชื่อมต่อสตริงโค้ดดังกล่าวในตำแหน่งที่ถูกต้องด้วยสตริงโค้ด

const code = `some code ${statement} ${value} some more code`;

รหัสการคืนสินค้า

การบล็อกประเภทต่างๆ กำหนดให้แสดงสตริงโค้ดด้วยวิธีที่ต่างกัน ดังนั้นให้ลองดูแต่ละหน้าสำหรับข้อมูลเพิ่มเติม