زمینه های

فیلدها بخش مهمی از تولید کد هستند، زیرا مقادیر قابل ویرایش توسط کاربر مانند رشته ها، اعداد و رنگ ها (در میان سایر موارد) را تعریف می کنند.

گنجاندن مقادیر فیلد در کد تولید شده شامل دریافت مقدار فیلد، تبدیل آن به یک رشته قابل استفاده و سپس الحاق رشته با بقیه کد است.

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

کد برگشت

انواع مختلف بلوک ها نیاز به بازگردانی رشته کد به روش های مختلف دارند، بنابراین برای اطلاعات بیشتر، صفحات جداگانه آنها را بررسی کنید: