בלוקים פנימיים הם הבלוקים שמצורפים לערך ולקלט של ההצהרה. מחוללי קוד בלוקים נפרדים צריכים לטפל בשרשור של הבלוקים הפנימיים שלהם כדי שהקוד יתווסף במקום הנכון.
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`;
קוד החזרה
סוגים שונים של בלוקים מחייבים החזרה של מחרוזת הקוד בדרכים שונות, ולכן מומלץ לעיין בדפים הנפרדים של הבלוקים כדי לקבל מידע נוסף: