คุณสามารถตั้งค่าองค์ประกอบเพื่อใช้ประโยชน์จากการรีจิสเตอร์การดำเนินการ เพื่อให้สามารถวางองค์ประกอบในเพจซึ่งจะรันการดำเนินการภายในองค์ประกอบของคุณ
รีจิสเตอร์การดำเนินการ
ระบบจะเรียกการดำเนินการในองค์ประกอบเมื่อทริกเกอร์ทำงาน องค์ประกอบสามารถรีจิสเตอร์การดำเนินการจำนวนเท่าใดก็ได้ และสามารถกำหนดเพย์โหลดที่การดำเนินการรองรับได้ด้วย เมื่อผู้ใช้เลือกการดำเนินการ ผู้ใช้สามารถป็อปปูเลทเพย์โหลดเพื่อส่งไปยังการดำเนินการนี้ได้
เช่นเดียวกับการรีจิสเตอร์ทริกเกอร์ คุณสามารถรีจิสเตอร์การดำเนินการที่องค์ประกอบของคุณรองรับในข้อมูลการรีจิสเตอร์ appinfo.json
สำหรับธีมของคุณ
ต่อไปนี้เป็นตัวอย่างของวิธีรีจิสเตอร์การดำเนินการ:
appinfo.json
สำหรับองค์ประกอบของคุณ และอัปเดตรายการ "actions":[],
"actions": [{ "actionName": "helloWorldChangeWhoIAm", "actionDescription": "Change Who I Am", "actionPayload": [{ "name": "whoAreYou", "description": "Who are you?", "type": { "ojComponent": { "component": "ojInputText"} }, }, "value": "" }] }]
เมื่อรีจิสเตอร์แล้ว การดำเนินการนี้จะปรากฏในไดอะล็อกการดำเนินการที่เรียกใช้ เมื่อคุณคลิกทริกเกอร์ที่แท็บ ลิงค์ ในแผงข้อมูลการตั้งค่าสำหรับองค์ประกอบของคุณ
รันการดำเนินการ
เมื่อรีจิสเตอร์การดำเนินการแล้ว คุณสามารถวางองค์ประกอบในเพจซึ่งรันการดำเนินการภายในองค์ประกอบนี้ได้ หากต้องการให้องค์ประกอบรันการดำเนินการ จะต้องมีการรับข้อความ EXECUTE_ACTION
ข้อความนี้จะมีเพย์โหลดที่ส่งไปยังการดำเนินการซึ่งคุณต้องดึงข้อมูลค่าที่ต้องการ
EXECUTE_ACTION
ให้แก้ไขไฟล์ render.js
และอัปเดตออบเจกต์ ViewModel
ที่มีรายการเหล่านี้
self.executeActionListener = function (args) { // get action and payload var payload = $.isArray(args.payload) ? args.payload[0] : {}, action = args.action, actionName = action && action.actionName; // handle 'helloWorldChangeWhoIAm' actions if ((actionName === 'helloWorldChangeWhoIAm') && (payload.name === 'whoAreYou')) { self.whoAreYou(payload.value); } };
การดำเนินการนี้จะสร้างฟังก์ชัน JavaScript เพื่อรันการดำเนินการ จากนั้นใช้ Sites SDK เพื่อเรียกฟังก์ชันเมื่อมีข้อความ EXECUTE_ACTION
ระบบจะเรียกการดำเนินการนี้เมื่อมีข้อความ EXECUTE_ACTION
และองค์ประกอบจะรองรับเฉพาะการดำเนินการที่ออกแบบมาเพื่อให้ทำงานด้วยเท่านั้น ในการดำเนินการนี้ คุณต้องตรวจสอบชื่อของการดำเนินการให้แน่ใจว่าเป็นการดำเนินการที่คุณสามารถทำได้
เพย์โหลดสำหรับการดำเนินการเป็นอาเรย์ของค่า ในตัวอย่างนี้ สมมติว่าค่านี้เป็นรายการแรกในอาเรย์ โดยทั่วไป คุณต้องค้นหาค่าของเพย์โหลดที่คุณต้องการจากอาเรย์
หมายเหตุ:
เนื่องจากลิสเทนเนอร์ของการดำเนินการเป็นการเรียกกลับ คุณควรใช้ JavaScript Closure หรือเชื่อมโยงฟังก์ชันที่เหมาะสมเพื่อให้แน่ใจว่าคุณมีสิทธิ์เข้าใช้ViewModel
เมื่อรันฟังก์ชัน