เอกสารนี้แปลโดย 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 แบบอะซิงโครนัสด้วย URLctx.importAsync(url): นำเข้าโมดูล ESM แบบไดนามิกด้วย URLctx.openView(options): เปิดวิวที่กำหนดค่าไว้ (ป๊อปอัป/ลิ้นชัก/หน้า)ctx.i18n.t() / ctx.t(): การทำให้เป็นสากล (Internationalization)ctx.onRefReady(ctx.ref, cb): แสดงผลหลังจากคอนเทนเนอร์พร้อมใช้งานctx.libs.React / ctx.libs.ReactDOM / ctx.libs.antd / ctx.libs.antdIcons / ctx.libs.dayjs: ไลบรารีทั่วไปที่มาพร้อมในตัว เช่น React, ReactDOM, Ant Design, ไอคอน Ant Design และ dayjs สำหรับการแสดงผล JSX และการจัดการเวลา (ยังคงเก็บ ctx.React / ctx.ReactDOM / ctx.antd ไว้เพื่อความเข้ากันได้)ctx.render(vnode): แสดงผล React element, สตริง HTML หรือ DOM node ลงในคอนเทนเนอร์เริ่มต้น ctx.element ครับ/ค่ะ การแสดงผลซ้ำจะใช้ Root เดิมและเขียนทับเนื้อหาที่มีอยู่ในคอนเทนเนอร์คุณสมบัติเฉพาะสำหรับแบบแก้ไขได้ (JSEditableField):
ctx.getValue(): รับค่าฟอร์มปัจจุบัน (จะใช้สถานะฟอร์มเป็นอันดับแรก หากไม่พบจะกลับไปใช้ props ของฟิลด์)ctx.setValue(v): ตั้งค่าฟอร์มและ props ของฟิลด์ เพื่อรักษาการซิงค์ข้อมูลแบบสองทางjs-field:value-change: จะถูกเรียกเมื่อค่าภายนอกมีการเปลี่ยนแปลง เพื่อให้สคริปต์อัปเดตการแสดงผลอินพุตได้ง่ายขึ้นตัวแก้ไขสคริปต์ของ JS Field รองรับการเน้นไวยากรณ์ (syntax highlighting), การแจ้งเตือนข้อผิดพลาด และโค้ดสนิปเปต (Snippets) ที่มาพร้อมในตัวครับ/ค่ะ
Snippets: เปิดรายการโค้ดสนิปเปตที่มาพร้อมในตัว สามารถค้นหาและแทรกไปยังตำแหน่งเคอร์เซอร์ปัจจุบันได้ด้วยคลิกเดียวRun: รันโค้ดปัจจุบันได้โดยตรงครับ/ค่ะ บันทึกการทำงานจะแสดงผลในแผง Logs ด้านล่าง ซึ่งรองรับ console.log/info/warn/error และการเน้นข้อผิดพลาดเพื่อระบุตำแหน่ง
สามารถสร้างโค้ดร่วมกับ AI Employee ได้ครับ/ค่ะ:
if (!lib) return;)class หรือ [name=...] สำหรับ Selector เป็นหลัก และหลีกเลี่ยงการใช้ id แบบตายตัว เพื่อป้องกัน id ซ้ำกันในบล็อกหรือป๊อปอัปหลายๆ อันครับ/ค่ะ