Toimien määritys

Voit määrittää komponentin hyödyntämään toiminnon rekisteröintiä siten, että kun komponentti pudotetaan sivulle, sivu suorittaa toimintoja komponentissa.

Toimien rekisteröinti

Toimia kutsutaan komponenteille, kun herättimet käynnistyvät. Komponentti voi rekisteröidä rajoittamattoman määrän toimintoja. Se voi myös määrittää, mitä tietoja toiminto tukee. Kun käyttäjä valitsee toiminnon, hän voi toimittaa toiminnolle välitettävät tiedot.

Voit rekisteröidä komponenttisi tukemat toimet teemasi appinfo.json-rekisteröintitiedoissa samalla tavalla kuin herättimet rekisteröidään.

Esimerkki toiminnon rekisteröinnistä:

  1. Muokkaa komponentin appinfo.json-tiedostoa ja päivitä "actions":[],-merkintä.
    "actions": [{
      "actionName": "helloWorldChangeWhoIAm",
      "actionDescription": "Change Who I Am",
      "actionPayload": [{
        "name": "whoAreYou",
        "description": "Who are you?",
        "type": {
          "ojComponent": {
           "component": "ojInputText"}
          },
        },
        "value": ""
      }]
    }]
  2. Kun toiminto on rekisteröity, se näytetään toimintovalintaikkunassa. Valintaikkunan voi avata napsauttamalla herätintä komponentin asetuspaneelin Linkki-välilehdessä.

Toimien suoritus

Kun toiminto on rekisteröity, voit pudottaa komponentteja sivulle, joka suorittaa toimintoja komponentissa. Komponentin on kuunneltava EXECUTE_ACTION-sanomaa, jotta se voisi suorittaa toiminnon. Sanoma sisältää myös toimeen välitetyt tiedot, joista on poimittava odotetut arvot.

Esimerkki: voit määrittää EXECUTE_ACTION-sanoman kuunneltavaksi muokkaamalla render.js-tiedostoa ja päivittämällä seuraavat merkinnät ViewModel-objektiin:
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);
  }
};

Tämä luo JavaScript-funktion toiminnon suoritusta varten ja kutsuu sitten funktiota sivustojen SDK:n avulla aina, kun EXECUTE_ACTION-sanoma lähetetään.

Toimintoa kutsutaan aina, kun EXECUTE_ACTION-sanoma lähetetään. Komponentin on itse huolehdittava siitä, että se käsittelee vain toiminnot, jotka se on suunniteltu käsittelemään. Jotta näin kävisi, toiminnon nimi on tarkistettava, jotta voidaan varmistaa, että se voidaan käsitellä.

Toiminnon tiedot muodostavat arvojen taulukon. Tässä esimerkissä oletetaan, että arvo on taulukon ensimmäinen merkintä. Yleensä huomioitavat tietojen arvot on etsittävä taulukosta.

Huomautus::

Koska toimien kuuntelija on vastakutsu, varmista, että ViewModel on käytettävissä, kun funktio suoritetaan. Voit tehdä tämän käyttämällä JavaScript-sulkeumaa tai sitomalla funktion asianmukaisesti.