เอกสารนี้แปลโดย AI สำหรับข้อมูลที่ถูกต้อง กรุณาดูเวอร์ชันภาษาอังกฤษ
JS Field ใช้สำหรับปรับแต่งการแสดงผลเนื้อหาด้วย JavaScript ในตำแหน่งฟิลด์ มักพบในบล็อกรายละเอียด, รายการแบบอ่านอย่างเดียวของฟอร์ม หรือ "รายการที่กำหนดเองอื่น ๆ" ในคอลัมน์ตาราง เหมาะสำหรับการแสดงผลแบบเฉพาะตัว, การรวมข้อมูลที่สืบทอดมา, ป้ายสถานะ, Rich Text หรือการเรนเดอร์แผนภูมิ เป็นต้นครับ/ค่ะ

ctx.value เพื่อเรนเดอร์เอาต์พุตครับ/ค่ะctx.getValue()/ctx.setValue(v) และเหตุการณ์คอนเทนเนอร์ js-field:value-change เพื่อความสะดวกในการซิงโครไนซ์ค่าฟอร์มแบบสองทางครับ/ค่ะประเภทอ่านอย่างเดียว
ประเภทแก้ไขได้
โค้ดรันไทม์ของ JS Field สามารถใช้ความสามารถของบริบท (Context) ต่อไปนี้ได้โดยตรงครับ/ค่ะ:
ctx.element: คอนเทนเนอร์ DOM ของฟิลด์ (ElementProxy) รองรับ innerHTML, querySelector, addEventListener เป็นต้นครับ/ค่ะctx.value: ค่าฟิลด์ปัจจุบัน (อ่านอย่างเดียว) ครับ/ค่ะctx.record: ออบเจกต์เรคคอร์ดปัจจุบัน (อ่านอย่างเดียว) ครับ/ค่ะctx.collection: เมตาข้อมูลของคอลเลกชันที่ฟิลด์สังกัดอยู่ (อ่านอย่างเดียว) ครับ/ค่ะctx.requireAsync(url): โหลดไลบรารี AMD/UMD แบบอะซิงโครนัสตาม URL ครับ/ค่ะctx.importAsync(url): นำเข้าโมดูล ESM แบบไดนามิกตาม URL ครับ/ค่ะctx.openView(options): เปิดมุมมองที่กำหนดค่าไว้ (ป๊อปอัป/ลิ้นชัก/หน้า) ครับ/ค่ะctx.i18n.t() / ctx.t(): การทำให้เป็นสากลครับ/ค่ะctx.onRefReady(ctx.ref, cb): เรนเดอร์หลังจากคอนเทนเนอร์พร้อมแล้วครับ/ค่ะctx.libs.React / ctx.libs.ReactDOM / ctx.libs.antd / ctx.libs.antdIcons / ctx.libs.dayjs / ctx.libs.lodash / ctx.libs.math / ctx.libs.formula: ไลบรารีในตัว เช่น React / ReactDOM / Ant Design / Ant Design Icons / dayjs / lodash / math.js / formula.js สำหรับการเรนเดอร์ JSX, การจัดการเวลา, การดำเนินการข้อมูล และการคำนวณทางคณิตศาสตร์ครับ/ค่ะ (ctx.React / ctx.ReactDOM / ctx.antd ยังคงถูกเก็บไว้เพื่อความเข้ากันได้ครับ/ค่ะ)ctx.render(vnode): เรนเดอร์องค์ประกอบ React, สตริง HTML หรือโหนด DOM ไปยังคอนเทนเนอร์เริ่มต้น ctx.element การเรนเดอร์ซ้ำจะใช้ Root เดิมและเขียนทับเนื้อหาที่มีอยู่ในคอนเทนเนอร์ครับ/ค่ะคุณสมบัติเฉพาะของประเภทแก้ไขได้ (JSEditableField):
ctx.getValue(): รับค่าฟอร์มปัจจุบัน (ลำดับความสำคัญคือสถานะฟอร์มก่อน แล้วจึงย้อนกลับไปที่ props ของฟิลด์) ครับ/ค่ะctx.setValue(v): ตั้งค่าฟอร์มและ props ของฟิลด์ เพื่อรักษาการซิงโครไนซ์แบบสองทางครับ/ค่ะjs-field:value-change: ทริกเกอร์เมื่อค่าภายนอกเปลี่ยนแปลง เพื่อให้สคริปต์อัปเดตการแสดงผลอินพุตได้ง่ายขึ้นครับ/ค่ะตัวแก้ไขสคริปต์ของ JS Field รองรับการเน้นไวยากรณ์, การแจ้งเตือนข้อผิดพลาด และโค้ดสนิปเปต (Snippets) ในตัวครับ/ค่ะ
Snippets: เปิดรายการโค้ดสนิปเปตในตัว สามารถค้นหาและแทรกไปยังตำแหน่งเคอร์เซอร์ปัจจุบันได้ในคลิกเดียวครับ/ค่ะRun: รันโค้ดปัจจุบันโดยตรง บันทึกการรันจะแสดงที่แผง Logs ด้านล่าง รองรับ console.log/info/warn/error และการเน้นตำแหน่งข้อผิดพลาดครับ/ค่ะ
สามารถใช้ร่วมกับพนักงาน AI เพื่อสร้างโค้ดได้ครับ/ค่ะ:
if (!lib) return;) ครับ/ค่ะclass หรือ [name=...] สำหรับ Selector และหลีกเลี่ยงการใช้ id ที่ตายตัว เพื่อป้องกัน id ซ้ำซ้อนในหลายบล็อกหรือป๊อปอัปครับ/ค่ะ