You can emit events from both your Wires and JavaScript. Superb!
You can emit events from Actions, Templates, and JavaScript.
Using the emit method:
You can provide arguments to all listeners by passing an array as the second argument.
Using the $emit() method:
Using the global cbwire.emit():
You can register event listeners on a Wire by defining listeners.
JavaScript keys are case-sensitive. You can preserve the key casing in CFML by surrounding your listener names in quotations.
Listening to events that you emit in your can be done using cbwire.on().
function someAction() {
emit( "taskAdded" );
}function someAction() {
emit( "taskAdded", [
"some task",
now()
] );
}<button wire:click="$emit( 'taskAdded' )"><script>
cbwire.emit( 'taskAdded' );
</script>component extends="cbwire.models.Component"{
listeners = {
"taskAdded": "clearCache"
};
function clearCache(){}
}<script>
cbwire.on( 'taskAdded', task => {
console.log( 'A task was added. ');
})
</script>