Μπορείτε να ορίσετε ένα συστατικό στοιχείο για να αξιοποιήσετε την εγγραφή ενεργειών ώστε να μπορείτε να το αποθέσετε σε μια σελίδα που θα εκτελεί ενέργειες εντός του συστατικού στοιχείου σας.
Εγγραφή ενεργειών
Οι ενέργειες καλούνται σε συστατικά στοιχεία όταν ενεργοποιούνται εναύσματα. Ένα συστατικό στοιχείο μπορεί να εγγράψει οποιονδήποτε αριθμό ενεργειών και επίσης να ορίσει το ωφέλιμο φορτίο που υποστηρίζει η ενέργεια. Όταν ένας χρήστης επιλέγει μια ενέργεια, μπορεί να συμπληρώσει το ωφέλιμο φορτίο που θα μεταβιβαστεί στην ενέργεια.
Όπως με την εγγραφή εναυσμάτων, μπορείτε να εγγράψετε ενέργειες που υποστηρίζει το συστατικό στοιχείο σας στα δεδομένα εγγραφής appinfo.json
για το θέμα σας.
Ακολουθεί ένα παράδειγμα του τρόπου εγγραφής μιας ενέργειας:
appinfo.json
για το συστατικό στοιχείο σας και ενημερώστε την καταχώριση "actions":[],
.
"actions": [{ "actionName": "helloWorldChangeWhoIAm", "actionDescription": "Change Who I Am", "actionPayload": [{ "name": "whoAreYou", "description": "Who are you?", "type": { "ojComponent": { "component": "ojInputText"} }, }, "value": "" }] }]
Μόλις εγγραφεί, η ενέργεια θα είναι ορατή στο παράθυρο διαλόγου ενέργειας που καλείται όταν κάνετε κλικ σε ένα έναυσμα στην καρτέλα "Δεσμός" στον πίνακα "Ρυθμίσεις" για το συστατικό στοιχείο σας.
Εκτέλεση ενεργειών
Όταν εγγραφεί μια ενέργεια, θα μπορείτε να αποθέσετε συστατικά στοιχεία στη σελίδα που εκτελούν ενέργειες εντός του συστατικού στοιχείου. Για να εκτελεί ένα συστατικό στοιχείο μια ενέργεια, πρέπει να εκτελεί ακρόαση για το μήνυμα 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 για την εκτέλεση της ενέργειας και, στη συνέχεια, χρησιμοποιεί το SDK τοποθεσιών για την κλήση της συνάρτησης όποτε εμφανίζεται το μήνυμα EXECUTE_ACTION
.
Η ενέργεια θα καλείται όποτε το εμφανίζεται ένα μήνυμα EXECUTE_ACTION
και εξαρτάται από το συστατικό στοιχείο να χειρίζεται μόνο ενέργειες τις οποίες έχει σχεδιαστεί να χειρίζεται. Για να γίνει αυτό, πρέπει να ελέγξετε το όνομα της ενέργειας για να βεβαιωθείτε ότι μπορείτε να τη χειριστείτε.
Το ωφέλιμο φορτίο για την ενέργεια είναι ένας πίνακας τιμών. Στο παράδειγμα, θεωρείται ότι η τιμή είναι η πρώτη καταχώριση στον πίνακα. Συνήθως, πρέπει να βρείτε τις τιμές ωφέλιμου φορτίου που σας ενδιαφέρουν από τον πίνακα.
Σημείωση:
Επειδή η λειτουργία ακρόασης της ενέργειας είναι επανάκληση, πρέπει να χρησιμοποιήσετε το JavaScript Closure ή να δεσμεύσετε κατάλληλα τη συνάρτηση για να βεβαιωθείτε ότι έχετε πρόσβαση στο αντικείμενοViewModel
όταν εκτελείται η συνάρτηση.