ตั้งค่าการดำเนินการ

คุณสามารถตั้งค่าองค์ประกอบเพื่อใช้ประโยชน์จากการรีจิสเตอร์การดำเนินการ เพื่อให้สามารถวางองค์ประกอบในเพจซึ่งจะรันการดำเนินการภายในองค์ประกอบของคุณ

รีจิสเตอร์การดำเนินการ

ระบบจะเรียกการดำเนินการในองค์ประกอบเมื่อทริกเกอร์ทำงาน องค์ประกอบสามารถรีจิสเตอร์การดำเนินการจำนวนเท่าใดก็ได้ และสามารถกำหนดเพย์โหลดที่การดำเนินการรองรับได้ด้วย เมื่อผู้ใช้เลือกการดำเนินการ ผู้ใช้สามารถป็อปปูเลทเพย์โหลดเพื่อส่งไปยังการดำเนินการนี้ได้

เช่นเดียวกับการรีจิสเตอร์ทริกเกอร์ คุณสามารถรีจิสเตอร์การดำเนินการที่องค์ประกอบของคุณรองรับในข้อมูลการรีจิสเตอร์ appinfo.json สำหรับธีมของคุณ

ต่อไปนี้เป็นตัวอย่างของวิธีรีจิสเตอร์การดำเนินการ:

  1. แก้ไขไฟล์ appinfo.json สำหรับองค์ประกอบของคุณ และอัปเดตรายการ "actions":[],
    "actions": [{
      "actionName": "helloWorldChangeWhoIAm",
      "actionDescription": "Change Who I Am",
      "actionPayload": [{
        "name": "whoAreYou",
        "description": "Who are you?",
        "type": {
          "ojComponent": {
           "component": "ojInputText"}
          },
        },
        "value": ""
      }]
    }]
  2. เมื่อรีจิสเตอร์แล้ว การดำเนินการนี้จะปรากฏในไดอะล็อกการดำเนินการที่เรียกใช้ เมื่อคุณคลิกทริกเกอร์ที่แท็บ ลิงค์ ในแผงข้อมูลการตั้งค่าสำหรับองค์ประกอบของคุณ

รันการดำเนินการ

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