คุณสามารถตั้งค่าองค์ประกอบเพื่อใช้ประโยชน์จากการรีจิสเตอร์การดำเนินการ เพื่อให้สามารถวางองค์ประกอบในเพจซึ่งจะรันการดำเนินการภายในองค์ประกอบของคุณ
รีจิสเตอร์การดำเนินการ
ระบบจะเรียกการดำเนินการในองค์ประกอบเมื่อทริกเกอร์ทำงาน องค์ประกอบสามารถรีจิสเตอร์การดำเนินการจำนวนเท่าใดก็ได้ และสามารถกำหนดเพย์โหลดที่การดำเนินการรองรับได้ด้วย เมื่อผู้ใช้เลือกการดำเนินการ ผู้ใช้สามารถป็อปปูเลทเพย์โหลดเพื่อส่งไปยังการดำเนินการนี้ได้
เช่นเดียวกับการรีจิสเตอร์ทริกเกอร์ คุณสามารถรีจิสเตอร์การดำเนินการที่องค์ประกอบของคุณรองรับในข้อมูลการรีจิสเตอร์ 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 เมื่อรันฟังก์ชัน