الحقول

فالحقول جزء مهم من عملية إنشاء الرموز لأنّها تحدّد قيم قابلة للتعديل من قِبل المستخدم مثل السلاسل والأرقام والألوان (من بين قيم أخرى).

يتضمن تضمين قيم الحقول في التعليمة البرمجية التي تم إنشاؤها الحصول على قيمة الحقل، وتحويلها إلى سلسلة قابلة للاستخدام، ثم ربط السلسلة بقية التعليمات البرمجية.

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

رمز الإرجاع

تتطلب الأنواع المختلفة من الكتل عرض سلسلة الرمز البرمجي بعدة لذا يمكنك التحقق من الصفحات الفردية للحصول على مزيد من المعلومات: