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

The Missing Link in Angular’s Signal Story: Res...

The Missing Link in Angular’s Signal Story: Resource API and httpResource

Manfred Steyer

April 22, 2025
Tweet

More Decks by Manfred Steyer

Other Decks in Programming

Transcript

  1. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten The Missing

    Link in Angular’s Signal Story: Resource API and httpResource ANGULARarchitects.io
  2. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 5 1)

    Signal Graph 2) Resource API 3) DEMO 4) Signal Graph in Demo 5) Live Coding Agenda
  3. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 6 About

    Me (Remote) Angular Workshops and Consulting Google Developer Expert for Angular Blog, Books, Articles, and Talks about Angular Manfred Steyer, ANGULARarchitects.io
  4. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 8 Building

    Your Reactive Graph desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
  5. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 9 Building

    Your Reactive Graph desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
  6. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten desserts =

    signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings())); 10 Building Your Reactive Graph originalName = signal(''); englishName = signal(''); Load Desserts
  7. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 12 Resource

    API dessertsResource = resource({ request: this.dessertsCriteria, loader: (param) => { return this.#dessertService.findPromise(param.request); } });
  8. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 13 Resource

    API dessertsResource = resource({ request: this.dessertsCriteria, loader: (param) => { return this.#dessertService.findPromise(param.request); } }); dessertsCriteria = computed(() => ({ originalName: this.originalName(), englishName: this.englishName(), })); desserts = this.dessertsResource.value; ratedDesserts = computed(() => this.toRated(this.desserts, …));
  9. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 14 httpResource

    dessertsResource = httpResource(() => ({ url: 'http://demo.angulararchitects.io/...', params: { originalName: this.originalName(), englishName: this.englishName(), } })); desserts = this.dessertsResource.value; ratedDesserts = computed(() => this.toRated(this.desserts, …));
  10. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 17 canvas

    (view child) style levelKey animation levelResource tilesMapResource tilesResource tilesMapProgress render (effect) levelOverview Resource
  11. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 21 Modern

    Angular 2nd Edition angularArchitects.io/modern Free eBook
  12. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 23 1)

    Build a reactive graph 2) httpResource: fetching data within the graph 3) Service: creating httpResource Conclusion