Events

JSF form events can be split into two categories:

  • external - things that are emitted into JSF from outside world (app)

  • internal - things that are emitted from JSF to outside world (app)

You can listen on external events with schema.$events.listen keyword.

For JSF to listen to itself there is in JsfBuilder subject called onAnyEvent. This subject emits all external and internal events, like onClick emit. You can also emit custom events for you own usage.

Example usage in layout:

rootBuilder.onAnyEvent.subscribe(x => {
  if (x.type === 'internal') {
    const data = x.internalEvent; // type of JsfFormEventInterface
  }
})

You can also manually trigger any event call:

rootBuilder.onAnyEvent.next({ type: 'custom', customEvent: 123 });

Subject interface:

{
    type: 'internal' | 'external' | any,
    customEvent?: any;
    externalEvent?: { key: string, data: any },
    internalEvent?: JsfFormEventInterface
}

Last updated

Was this helpful?