ช่องเป็นส่วนสำคัญในการสร้างโค้ดเนื่องจากเป็นค่า ที่ผู้ใช้แก้ไขได้ เช่น สตริง ตัวเลข และสี (และอื่นๆ)
การใส่ค่าของช่องในโค้ดที่สร้างขึ้นจะต้องมีการรับค่าของช่อง การแปลงค่าเป็นสตริงที่ใช้ได้ จากนั้นจึงเชื่อมต่อสตริงกับโค้ดที่เหลือ
import {javascriptGenerator} from 'blockly/javascript';
javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
// Get the field value.
const fieldValue = block.getFieldValue('MY_FIELD');
// Concatenate the code.
const code = `some code ${fieldValue} some more code`;
// Return the code.
return code;
}
รับค่า
คุณจะเข้าถึงค่าในช่องได้โดยใช้ getFieldValue
ข้อมูลที่ส่งกลับมาจะแตกต่างจากฟิลด์หนึ่ง ดังนั้นคุณควรอ่านเอกสารฟิลด์ในตัวเพื่อดูข้อมูลเกี่ยวกับช่องที่เฉพาะเจาะจงของคุณ ตัวอย่างเช่น ช่องป้อนข้อความจะแสดงข้อความที่ผู้ใช้ป้อนตรงกันทั้งหมด แต่ช่องแบบเลื่อนลงจะแสดงสตริงที่เป็นกลางของภาษาซึ่งเชื่อมโยงกับรายการที่ผู้ใช้เลือก
แปลงค่า
ค่าในช่องส่วนใหญ่จะพร้อมเชื่อมโยงกับสตริงโค้ดทันที อย่างไรก็ตาม ค่าในช่องบางค่าจำเป็นต้องมีการแก้ไขเพิ่มเติมก่อนจึงจะใช้งานได้
สตริง
โดยเครื่องมือสร้างโค้ดจะต้องยกข้อความมาใส่สตริงก่อนจึงจะเชื่อมโยงกันได้
// For a single line text field.
const str = generator.quote_(block.getFieldValue('STR'));
// For a multiline text field.
const str = generator.multiline_quote_(block.getFieldValue('STR'));
ตัวแปร
เครื่องมือสร้างโค้ดต้องขัดเกลาชื่อตัวแปรก่อนจึงจะเชื่อมโยงกันได้ ซึ่งจำเป็นเนื่องจากเหตุผลสองประการ:
- ผู้ใช้ป้อนตัวแปรในภาษาที่เลือก ซึ่งหมายความว่าอาจต้องแปลงเป็นอักขระ ASCII เช่น "
متغير
" จะถูกแปลงเป็น "_D9_85_D8_AA_D8_BA_D9_8A_D8_B1
" - ตัวแปรอาจขัดแย้งกับคำที่สงวนไว้ ซึ่งหมายความว่าอาจต้องทำการแก้ไข
เพื่อไม่ให้ขัดแย้งกัน ตัวอย่างเช่น "
for
" จะถูกแปลงเป็น "for2
"
const identifier = generator.getVariableName(block.getFieldValue('VAR'));
เชื่อมต่อรหัส
เมื่อได้รับค่าในช่องและแปลงเป็นสตริงแล้ว คุณจะนำค่าในช่องมาต่อกันในที่ที่ถูกต้องด้วยสตริงโค้ดได้
const code = `some code ${value} some more code`;
รหัสการคืนสินค้า
การบล็อกประเภทต่างๆ กำหนดให้แสดงสตริงโค้ดด้วยวิธีที่ต่างกัน ดังนั้นให้ลองดูแต่ละหน้าสำหรับข้อมูลเพิ่มเติม