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

Signal Forms: Beyond the Basics @ngBelgrade 2026

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Manfred Steyer Manfred Steyer PRO
May 06, 2026
13

Signal Forms: Beyond the Basics @ngBelgrade 2026

Avatar for Manfred Steyer

Manfred Steyer PRO

May 06, 2026

More Decks by Manfred Steyer

Transcript

  1. •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
  2. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 6 Setting up

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

    valid = this.flightForm.from().valid(); const errors = this.flightForm.from().errors(); const value = this.flightForm.from().value();
  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(); const regValid = this.flightForm.aircraft.registration().valid(); const regErrors = this.flightForm.aircraft.registration().errors(); const regValue = this.flightForm.aircraft.registration().value();
  7. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 11 FormField <form

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

    readonly flightForm = form(this.flight, (path) => { required(path.from); minLength(path.from, 3); });
  9. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 24 Undefined: Does

    not Exist! export interface Flight { id: number; from: string; to: string; […] delay?: number; }
  10. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 25 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 }
  11. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 32 Architecture, Concepts,

    Implementation Modern Angular 440 pages, PDF, EPUB Regular Free Updates! angular-book.com
  12. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten • Splitting Large

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

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