Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The Missing Link in Angular’s Signal Story: Res...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Manfred Steyer
PRO
April 22, 2025
Programming
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The Missing Link in Angular’s Signal Story: Resource API and httpResource
Manfred Steyer
PRO
April 22, 2025
More Decks by Manfred Steyer
See All by Manfred Steyer
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
340
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
160
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
240
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
260
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
180
Agentic UI
manfredsteyer
PRO
0
260
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
310
Agentic UI beyond Chats Architecture Patterns & Open Standards @ngMunich 05/2026
manfredsteyer
PRO
0
260
Agentic AI in the Frontend: Architectures with Open Standards @iJS London 2026
manfredsteyer
PRO
0
190
Other Decks in Programming
See All in Programming
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
490
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.7k
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
180
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
670
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
220
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
260
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
720
仕様駆動開発の消費期限
watany
20
8k
React本体のコードリーディング
high_g_engineer
1
140
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
140
数百円から始めるRuby電子工作
tarosay
0
140
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
260
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
370
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
200
Documentation Writing (for coders)
carmenintech
77
5.4k
Thoughts on Productivity
jonyablonski
76
5.3k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
370
Ethics towards AI in product and experience design
skipperchong
2
340
Docker and Python
trallard
47
4.1k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
200
Transcript
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten The Missing
Link in Angular’s Signal Story: Resource API and httpResource ANGULARarchitects.io
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Application Code
as a Script
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Marble Run
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Marble Run
Data Binding
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 5 1)
Signal Graph 2) Resource API 3) DEMO 4) Signal Graph in Demo 5) Live Coding Agenda
• 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
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 7 Reactive
Graph
• 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()));
• 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()));
• 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
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 11 Resource
API
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 12 Resource
API dessertsResource = resource({ request: this.dessertsCriteria, loader: (param) => { return this.#dessertService.findPromise(param.request); } });
• 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, …));
• 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, …));
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 15 DEMO
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 16 Reactive
Graph in Our App
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 17 canvas
(view child) style levelKey animation levelResource tilesMapResource tilesResource tilesMapProgress render (effect) levelOverview Resource
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 20 DEMO
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 21 Modern
Angular 2nd Edition angularArchitects.io/modern Free eBook
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 23 1)
Build a reactive graph 2) httpResource: fetching data within the graph 3) Service: creating httpResource Conclusion
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Marble Run