שדות

שדות הם חלק חשוב ביצירת הקוד, כי הם מגדירים ערכים שהמשתמש יכול לערוך, כמו מחרוזות, מספרים וצבעים (בין היתר).

כדי לכלול ערכי שדות בקוד שנוצר, צריך לקבל את ערך השדה, להפוך אותו למחרוזת ניתנת לשימוש ואז לשרשר את המחרוזת עם שאר הקוד.

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

משתנים

צריך לקרצף שמות של משתנים על ידי מחולל הקוד כדי לשרשר אותם. הדבר הכרחי משתי סיבות:

  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`;

קוד החזרה

סוגים שונים של בלוקים מחייבים החזרה של מחרוזת הקוד בדרכים שונות, ולכן מומלץ לעיין בדפים הנפרדים של הבלוקים כדי לקבל מידע נוסף: