ช่อง

ฟิลด์เป็นส่วนสำคัญของการสร้างโค้ด เพราะฟิลด์จะ ค่าที่ผู้ใช้แก้ไขได้ เช่น สตริง ตัวเลข และสี (และอื่นๆ)

การรวมค่าช่องในโค้ดที่สร้างขึ้นเกี่ยวข้องกับการรับค่าของช่อง ให้กลายเป็นสตริงที่ใช้ได้ จากนั้นนำสตริงมาต่อกัน ของโค้ดที่เหลือ

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'));

ตัวแปร

โปรแกรมสร้างโค้ดต้องขัดชื่อตัวแปรก่อนจึงจะได้ เชื่อมต่อกัน โดยมีความจำเป็น 2 ประการดังนี้

  1. ผู้ใช้จะป้อนตัวแปรในภาษาที่เลือก ซึ่งหมายความว่า อาจต้องแปลงเป็นอักขระ ASCII เช่น "متغير" จะ แปลงเป็น "_D9_85_D8_AA_D8_BA_D9_8A_D8_B1"
  2. ตัวแปรอาจขัดแย้งกับคำที่สงวนไว้ ซึ่งหมายความว่า ผู้ดูแลระบบอาจต้อง แก้ไขเพื่อไม่ให้เกิดข้อขัดแย้ง เช่น "for" จะถูกแปลงเป็น "for2"
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

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

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

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

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

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