Składnik może zawierać wyzwalacze uruchamiające czynności w innych składnikach. Wyzwalacze, aby były uaktywniane przez składniki, trzeba zarejestrować.
Składnik dostarcza do wyzwalacza ładunek, który jest przekazywany do czynności uruchamianej w chwili uaktywnienia wyzwalacza. Można wybrać czynności uruchamiane dla poszczególnych wyzwalaczy. Składniki, które są projektowane z myślą o ich współpracy, mogą automatycznie uaktywniać wyzwalacze w celu uruchamiania czynności bez interakcji użytkownika.
Rejestrowanie wyzwalaczy
W przypadku składnika niestandardowego wyzwalacze są rejestrowane w ramach jego danych rejestracyjnych. Aby dodać wyzwalacz, należy zaktualizować tablicę właściwości "triggers"
, dodając do niej obsługiwany wyzwalacz. Trzeba także określić ładunek obsługiwany przez wyzwalacz, aby mógł zostać utworzony interfejs użytkownika umożliwiający użytkownikom odwzorowywanie wartości z ładunku na właściwości obsługiwane przez czynność.
appinfo.json
do edycji i sprawdzić wpis "triggers":[],
:
"triggers": [{ "triggerName": "helloWorldWhoAreYou", "triggerDescription": "Show Who I Am", "triggerPayload": [{ "name": "whoAreYou", "displayName": "Who I Am" }] }],
Zsynchronizować plik z serwerem serwisów.
W tym przykładowym wpisie wyzwalacza została zdefiniowana właściwość triggerName
("helloWorldWhoAreYou"
). Wartość tej właściwości musi być unikatowa. Wyzwalacz ma przypisany opis ("Show Who I Am"
), który jest używany w oknie dialogowym, w interfejsie użytkownika, do wyświetlenia wyzwalacza. Na koniec został zdefiniowany ładunek wartości dla wyzwalacza; użytkownicy będą mogli wybierać wpisy z tego ładunku i odwzorowywać je na pola używane w czynności.
Gdy wyzwalacz zostanie zarejestrowany, będzie można go zobaczyć i wybrać po przejściu na kartę Łącze w panelu ustawień składnika.
Uaktywnianie wyzwalaczy
Wyzwalacze mogą być uaktywniane w dowolnej chwili przez składnik. Zazwyczaj wyzwalacz jest uaktywniany wskutek interakcji użytkownika, takiej jak naciśnięcie przycisku lub wybranie wiersza w tabeli. Składnik może uaktywnić wyzwalacz na podstawie dowolnych kryteriów — na przykład, gdy dane ulegną zmianie spowodowanej wywołaniem REST API. Gdy wyzwalacz zostanie uaktywniony, może być wykonywana dowolna liczba czynności.
render.js
do edycji i dodać w obiekcie viewModel
funkcję JavaScript, która będzie wywoływać Sites SDK w celu uaktywnienia wyzwalacza.
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': 'helloWorldWhoAreYou', 'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"} }); };
-edit template.html
) oraz poprzedzić składnik </div>
przyciskiem.
<button data-bind="click raiseTrigger">Who Am I?</button>
Zsynchronizować (lub wysłać) plik render.js
z serwerem swojej instancji Oracle Content Management.
W obiekcie ViewModel
utworzyliśmy funkcję JavaScript, która zostanie wywołana, gdy przycisk zostanie naciśnięty (click). Funkcja ta wywołuje Sites SDK i zleca mu uaktywnienie wszystkich czynności zdefiniowanych dla tego wyzwalacza "helloWorldWhoAreYou"
. Przekazuje także ładunek triggerPayload
zawierający jedno pole "whoAreYou"
. Wartości "helloWorldWhoAreYou"
i "whoAreYou"
odpowiadają tym, które wprowadziliśmy na poprzednim etapie, rejestrując wyzwalacz.
Uwaga:
Nie ma określonej kolejności wykonywania czynności. Mimo że czynności są wywoływane w kolejności, w jakiej są wyszczególnione, to jednak nie ma okresu oczekiwania na ukończenie poprzedniej czynności — następna czynność jest wywoływana od razu. Jeśli czynność wykonuje wywołanie asynchroniczne, to jej działanie może nie zostać ukończone, zanim zostanie wywołana następna czynność.