บล็อกด้านในคือบล็อกที่แนบมากับอินพุตค่าและคำสั่ง เครื่องมือสร้างโค้ดบล็อกแต่ละรายการต้องจัดการกับการต่อบล็อกภายในเข้าด้วยกันเพื่อให้เพิ่มโค้ดในตําแหน่งที่ถูกต้อง
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`;
รหัสการคืนสินค้า
การบล็อกประเภทต่างๆ กำหนดให้แสดงสตริงโค้ดด้วยวิธีที่ต่างกัน ดังนั้นให้ลองดูแต่ละหน้าสำหรับข้อมูลเพิ่มเติม