Pasul 6: Generarea triggerelor

În acest pas, vă vom arăta cum se generează triggerul pe care l-aţi văzut înregistrat.

Triggerele pot fi generate în orice moment de o componentă. De obicei, este generat de o interacţiune cu utilizatorul, prin clic pe un buton sau prin selectarea unui rând dintr-un tabel. Cu toate acestea, componenta poate genera triggerul pe baza oricărui criteriu, de exemplu, când se modifică datele ca urmare a unui apel REST.

Pt. acest exemplu, atunci când faceţi clic pe imagine, această acţiune va iniţia un trigger care trece prin valoarea curentă a proprietăţii whoAreYou.

Verificaţi fişierul render.js şi uitaţi-vă la obiectul SampleComponentViewModel.

Pt. a genera un trigger:

  1. Verificaţi funcţia din obiectul SampleComponentViewModel care apelează SDK pt. site-uri să genereze triggerul.

    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': triggerName, 
        'triggerPayload': { 
            'payloadData': 'some data here'
        }
      });
    };
  2. Acum aveţi nevoie de ceva din interfaţa utilizator pt. a apela funcţia să genereze triggerul. Verificaţi fişierul render.js şi updataţi obiectul sampleComponentTemplate pt. a avea această înregistrare:

         '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +

În obiectul SampleComponentViewModel, vedeţi funcţia JavaScript apelată atunci când se face clic pe imagine. Această funcţie apelează SDK-ul pt. site-uri pt. a-i spune să declanşeze toate acţiunile definite pt. triggerul "imageClicked", care este valoarea transmisă din legarea de clic de la pasul 2. Trece şi printr-un triggerPayload care are un singur câmp: payloadData şi trece printr-o valoare statică 'nişte date aici'. Aceste valori imageClicked şi whoAreYou se potrivesc cu cele din fişierul appinfo.json în care este înregistrat triggerul (la pasul anterior).

În codul exemplu, triggerul este generat de o legare de date din legarea clic şi trece în numele triggerului imageClicked. Momentan există trei randări ale componentei <scs-image> pe baza machetei selectate de către utilizator. Pt. a vă asigura că triggerul este generat pt. fiecare machetă, editaţi fişierul render.js cu următoarele modificări.

  • Generarea de triggere din machete diferite. Găsiţi cele două intrări ale acestui cod:

    '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}">' +

    Schimbaţi codul în:

    '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +
  • Specificaţi payload-ul de trecut la triggere. Modificaţi acest cod:

        self.raiseTrigger = function (triggerName) {
          SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
            'triggerName': triggerName,
            'triggerPayload': {
              'payloadData': 'some data here'
            }
          });
        };

    Utilizaţi în schimb acest cod:

        self.raiseTrigger = function (triggerName) {
          SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
            'triggerName': triggerName,
            'triggerPayload': {
              'payloadData': self.imageBannerText() // pass banner text as payload
            }
          });
        };
  • Sincronizaţi sau încărcaţi fişierul render.js către serverul instanţei Oracle Content Management.

Acum, că aţi verificat codul necesar, puteţi asocia triggerul, pt. a fi generat de componenta dvs. personalizată atunci când se face clic pe buton.

Verificaţi rezultatele de la pasul 6

Acum ar trebui să puteţi înregistra o acţiune de executat pe triggerul dvs. şi să faceţi şi ca acţiunea să se execute la generarea triggerului:

  1. Reîncărcaţi pagina din site-ul dvs., astfel ca Generatorul de site-uri să poată prelua modificările aduse componentei.

  2. Treceţi pagina în modul Editare.

  3. Glisaţi şi plasaţi componenta dvs. pe pagină.

  4. Aduceţi panoul Setări în dreptul componentei dvs.

  5. Selectaţi fila Link în partea de sus a panoului Setări.

  6. Selectaţi Acţiuni trigger ca Tip de link.

  7. Faceţi clic pe triggerul imageClicked pe care l-aţi văzut înregistrat.

  8. În caseta de dialog, glisaţi acţiunea Afişare alertă din secţiunea Acţiuni pagină.

  9. În câmpul Mesaj, selectaţi valoarea payloadData, care este payload-ul pe care l-aţi introdus atunci când aţi înregistrat triggerul.

  10. Închideţi panoul Setări şi comutaţi generatorul de site-uri în modul previzualizare.

  11. Faceţi clic pe imaginea din componentă.

    Va apărea o alertă care afişează niciun mesaj definit deoarece nu aţi specificat valoarea imageBannerText.

  12. Treceţi pagina în modul Editare şi aduceţi din nou panoul Setări pt. componentă.

  13. Faceţi clic pe Setări personalizate şi introduceţi Workplace.

  14. Închideţi panoul Setări şi comutaţi pagina în modul previzualizare.

  15. Faceţi clic pe imaginea din componentă.

    Acum ar trebui să afişeze payload-ul Workplace actualizat, care este invocat din modificarea pe care aţi făcut-o la legarea de clic.

Puteţi executa oricât de multe acţiuni atunci când este generat un trigger.

Notă:

Nu există nicio ordine predefinită pt. executarea acţiunilor. Deşi fiecare acţiune va fi apelată în ordinea în care este listată, nu există nicio perioadă de aşteptare ca o acţiune să se finalizeze înainte de apelarea următoarei acţiuni. Dacă o acţiune efectuează un apel asincron, este posibil să nu se finalizeze până când este executată următoarea acţiune.

Continuaţi cu Pasul 7: Înregistrarea acţiunilor.