Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Beyond the Basics: Signal Forms

Beyond the Basics: Signal Forms

Avatar for Manfred Steyer

Manfred Steyer PRO

February 05, 2026
Tweet

More Decks by Manfred Steyer

Other Decks in Programming

Transcript

  1. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten • Signal Forms

    101 (short) • Splitting Large Forms • Conditional Validation • Metadata • Null and Undefined • Custom Controls • Interop with Reactive Forms 3 Agenda
  2. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 4 About Me

    (Remote) Angular Workshops and Consulting Google Developer Expert for Angular Blog, Books, Articles, and Talks about Angular Manfred Steyer, ANGULARarchitects.io
  3. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 7 Setting up

    a Signal Form protected readonly flight = signal<Flight>({ id: 123, from: 'Graz', to: 'Rome', aircraft: { type: 'T0815', registration: 'R4711' }, […] });
  4. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 8 Setting up

    a Signal Form protected readonly flight = signal<Flight>({ id: 123, from: 'Graz', to: 'Rome', aircraft: { type: 'T0815‘, registration: 'R4711‘ }, […] }); protected readonly flightForm = form(this.flight);
  5. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 9 Setting up

    a Signal Form protected readonly flight = signal<Flight>({ id: 123, from: 'Graz', to: 'Rome', aircraft: { type: 'T0815‘, registration: 'R4711‘ }, […] }); protected readonly flightForm = form(this.flight); // ^^^ FieldTree<Flight>
  6. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 10 FieldTree const

    valid = this.flightForm.from().valid(); const errors = this.flightForm.from().errors(); const value = this.flightForm.from().value();
  7. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 11 FieldTree const

    valid = this.flightForm.from().valid(); const errors = this.flightForm.from().errors(); const value = this.flightForm.from().value(); const regValid = this.flightForm.aircraft.registration().valid(); const regErrors = this.flightForm.aircraft.registration().errors(); const regValue = this.flightForm.aircraft.registration().value();
  8. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 12 FormField <input

    [formField]="flightForm.id" type="number" /> <input [formField]="flightForm.from" /> <input [formField]="flightForm.to" />
  9. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 14 Schema protected

    readonly flightForm = form(this.flight, (path) => { required(path.from); minLength(path.from, 3); });
  10. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 15 FormField <input

    [formField]="flightForm.id" type="number" /> <input [formField]="flightForm.from" /> <div>{{flightForm.from().errors() | json }}</div> <input [formField]="flightForm.to" />
  11. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 26 Undefined: Does

    not Exist! export interface Flight { id: number; from: string; to: string; […] delay?: number; }
  12. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 27 Domain Model

    vs. Form Model export interface FlightFormModel { id: number; from: string; to: string; […] // Not optional delay: number } export interface FlightDomainModel { id: number; from: string; to: string; […] // Optional delay?: number }
  13. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 34 Let‘s Meet

    at ngRome, June 2026 Get your Tickets now! Early Bird Ends soon!
  14. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten • Splitting Large

    Forms • Conditional Validation • Metadata • Null and Undefined • Custom Controls • Interop with Reactive Forms 35 Conclusion
  15. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 36 [Social Media]

    Manfred Steyer [web] ANGULARarchitects.io Manfred Steyer @ Manfred Steyer Remote Company Workshops and Consulting http://angulararchitects.io Slides & Examples