ตั้งค่าทริกเกอร์

องค์ประกอบสามารถรวมทริกเกอร์ที่จะรันการดำเนินการในองค์ประกอบอื่น คุณต้องรีจิสเตอร์ทริกเกอร์ที่จะเรียกโดยองค์ประกอบ

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

รีจิสเตอร์ทริกเกอร์

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

  1. แก้ไขไฟล์ appinfo.json และตรวจสอบรายการ "triggers":[],:
    "triggers": [{
        "triggerName": "helloWorldWhoAreYou",
        "triggerDescription": "Show Who I Am",
        "triggerPayload": [{
          "name": "whoAreYou",
          "displayName": "Who I Am"
       }]
    }],
  2. ซิงโครไนซ์ไฟล์กับเซิร์ฟเวอร์ของไซต์

ในรายการทริกเกอร์ตัวอย่างนี้ คุณได้กำหนด triggerName ("helloWorldWhoAreYou") ค่าของชื่อต้องไม่ซ้ำกัน จากนั้นคุณจะระบุคำอธิบาย ("Show Who I Am") ให้กับทริกเกอร์ ซึ่งจะใช้โดยไดอะล็อกอินเตอร์เฟซผู้ใช้เพื่อแสดงทริกเกอร์ของคุณ สุดท้าย คุณได้กำหนดเพย์โหลดค่าเดียวสำหรับทริกเกอร์ ผู้ใช้จะสามารถเลือกรายการในเพย์โหลดนี้และแมปเข้ากับฟิลด์ในการดำเนินการได้

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

เรียกทริกเกอร์

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

ตัวอย่างของการเรียกทริกเกอร์มีดังนี้
  1. แก้ไขไฟล์ render.js และเพิ่มฟังก์ชัน JavaScript ในออบเจกต์ viewModel ที่จะเรียก Sites SDK ให้เรียกทริกเกอร์
    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': 'helloWorldWhoAreYou', 
        'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"}
      });
    };
  2. เพิ่มรายการในอินเตอร์เฟซผู้ใช้เพื่อเรียกฟังก์ชันให้เรียกทริกเกอร์ (-edit template.html) และปุ่มก่อน </div>
    <button data-bind="click raiseTrigger">Who Am I?</button>
  3. ซิงโครไนซ์หรืออัปโหลดไฟล์ render.js ไปยังเซิร์ฟเวอร์อินสแตนซ์ Oracle Content Management ของคุณ

ในออบเจกต์ ViewModel คุณได้สร้างฟังก์ชัน JavaScript ที่จะถูกเรียกเมื่อมีการคลิกปุ่ม ฟังก์ชันนี้จะเรียก Sites SDK เพื่อบอกให้ทริกเกอร์การดำเนินการทั้งหมดที่กำหนดไว้สำหรับทริกเกอร์นี้ "helloWorldWhoAreYou" นอกจากนี้ยังส่งผ่าน triggerPayload ที่มีฟิลด์เดียว "whoAreYou" ค่าเหล่านี้ "helloWorldWhoAreYou" และ "whoAreYou" จะตรงกับค่าที่คุณป้อนเมื่อคุณรีจิสเตอร์ทริกเกอร์ในขั้นตอนก่อนหน้า

หมายเหตุ:

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