Web Development · WDC-78

Advanced Angular

Advanced Angular is a course in building large applications with Angular 22 at an advanced level, covering advanced components and directives, dependency injection, signals with RxJS, NgRx SignalStore, authentication, Angular Material, multilingual sites with i18n, server-side rendering and a CRUD workshop with Node.js. It suits developers and IT managers who already have some Angular experience.

Updated
From 8,550 THB / person 9,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration18 hours · 3 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

As an Angular application grows in pages, users and the number of developers on the team, simply making it work is no longer enough. You need a structure that is easy to maintain, clear responsibilities through dependency injection, systematic state management, access control and fast loading from the very first page. Current Angular has the tools for all of this: signals, zoneless change detection, @defer, server-side rendering with incremental hydration, and CSS-based animation that replaces the old animations package.

This course goes deep into Angular 22 at an advanced level, from advanced components and directives, in-depth dependency injection and signals with RxJS, to state management with NgRx SignalStore, authentication with interceptors and guards, Angular Material and the CDK, third-party library integration and multilingual sites with i18n, through to performance, testing and deployment, all through an order management workshop with CRUD against a Node.js API. (3 days, 6 hours per day, 18 hours in total, Advanced level.)

What you’ll gain

  • Structure large Angular applications so they are easy to maintain and extend
  • Build reusable components and directives and use dependency injection in depth
  • Manage state with signals, RxJS and NgRx SignalStore
  • Build authentication and authorisation with interceptors and guards
  • Build multilingual sites with i18n and speed them up with @defer and SSR
  • Build CRUD with a Node.js API, write tests and deploy the application to production

Who this course is for

  • Developers who already write Angular and want to build large applications
  • Tech leads and IT managers who set standards for their team's Angular projects
  • Developers who maintain older Angular systems and want to move to current practice
  • Full-stack developers who want to connect Angular with a Node.js API

Prerequisites

  • Some experience writing Angular, such as components, routing and HttpClient
  • Confident with TypeScript and JavaScript
  • Some experience building websites with HTML and CSS
  • A basic understanding of how web services and databases work

Curriculum

Course Details

This course is the 2026 edition of Advanced Angular, rewritten for Angular 22. It runs for 3 days, 6 hours per day (18 hours in total, 09:00-16:00), as lectures with labs built around an order management workshop that grows throughout the course. Advanced level. Learners structure a large application, build advanced components and directives, use dependency injection in depth, combine signals with RxJS, manage state with NgRx SignalStore, add authentication with interceptors and guards, use Angular Material, build multilingual pages with i18n, speed up loading with @defer and SSR, write tests with Vitest, and deploy alongside a Node.js API with Docker. They take home the source code for every lab.

Day 1 Advanced Components, DI and Reactivity

Section 1: Lab: Structuring Large Angular Applications

  • What changed in recent versions: standalone, signals, zoneless and control flow
  • Organise folders by feature and define clear lazy routes
  • Strict TypeScript settings, ESLint and path aliases
  • Upgrade older projects with ng update and migrations
  • Lab: set up the order management project structure

Section 2: Lab: Advanced Components

  • Multi-slot content projection with ng-content and select
  • Signal-based viewChild() and contentChild() in place of the old decorators
  • ng-template and ngTemplateOutlet for templates passed in from outside
  • OnPush, host bindings and the lifecycle hooks still needed
  • Lab: a data table component with configurable columns

Section 3: Advanced Custom Directives and Pipes

  • Attribute directives that take values with input() and handle host events
  • Combine several directives with hostDirectives
  • Pure and impure pipes and their effect on performance
  • A directive that shows or hides content by user permission
  • Lab: a permission directive and an order status pipe

Section 4: Dependency Injection in Depth

  • The injector hierarchy and service scope
  • useClass, useValue, useFactory and InjectionToken
  • inject() outside constructors and DestroyRef
  • Separate per-environment configuration through providers
  • Lab: a configurable API service that switches to a mock for testing

Section 5: Lab: Signals with RxJS

  • linkedSignal() and effect() in real work
  • resource() and httpResource() for asynchronous data
  • toSignal() and toObservable() to bridge the two worlds
  • switchMap, debounceTime and takeUntilDestroyed
  • Lab: a search-as-you-type order search box
Day 2 State, Security and UI

Section 6: Lab: State Management with NgRx SignalStore

  • When to use a store and when a service with signals is enough
  • signalStore, withState, withComputed and withMethods
  • Update state with patchState and handle async work with rxMethod
  • Comparison with action, reducer and effect-based NgRx Store in older systems
  • Lab: a store for the cart and order list

Section 7: Lab: Authentication and Authorisation

  • Log in through an API and store tokens with care
  • A functional interceptor that attaches the token and handles 401 responses
  • Protect routes with CanActivateFn and CanMatchFn
  • Show menus and buttons by user role
  • Lab: an admin area that only authorised users can open

Section 8: Lab: Angular Material and the CDK

  • Install with ng add and adjust the theme to match your brand
  • Tables with sort and paginator, dialogs and snackbars
  • Material form fields with reactive forms
  • CDK drag and drop, overlay and accessibility
  • Lab: an order management page built with Material

Section 9: The New Approach to Animation

  • @angular/animations is deprecated, and how to migrate
  • animate.enter and animate.leave with CSS animations
  • Page transitions with the router's view transitions
  • Respect users who set prefers-reduced-motion
  • Lab: a list that animates items as they are added and removed

Section 10: Lab: Integrating Third-Party Libraries

  • Choose npm libraries and check compatibility with current Angular
  • Wrap a plain JavaScript library in a component
  • Use afterNextRender for code that must run in the browser
  • Charts with Chart.js that update from signals
  • Lab: a sales dashboard with charts
Day 3 Back End, i18n, Performance and Deployment

Section 11: Lab: CRUD with a Node.js API

  • A REST API with Node.js and Express backed by SQLite
  • An Angular service layer with typed models
  • Pagination, search and file uploads
  • Optimistic updates and handling API errors
  • Lab: add, edit and delete orders through a real API

Section 12: Multilingual Sites with i18n

  • Install @angular/localize and mark templates for i18n
  • $localize for text in code
  • Extract messages with ng extract-i18n and per-language translation files
  • Build per locale, with dates and numbers formatted by locale
  • Lab: a Thai and English version of the system

Section 13: Performance and SSR

  • @defer with triggers such as on viewport and on idle
  • SSR with @angular/ssr and per-route render modes
  • Hydration and incremental hydration, enabled by default in Angular 22
  • Analyse bundle size and set budgets
  • Lab: make the first page load faster and measure the result

Section 14: Lab: Testing and PWA

  • Unit tests with Vitest through ng test
  • Test zoneless components and services with TestBed
  • Mock APIs with HttpTestingController
  • Angular's service worker for offline use
  • Lab: tests for the store and the interceptor

Section 15: Workshop: Order Management System and Deployment

  • Bring everything together: state, permissions and multiple languages
  • Build Angular and serve it with Nginx
  • Run Angular and the Node.js API with Docker Compose
  • A checklist before going to production
  • Present your work and get feedback

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

What is the difference between viewChild and contentChild in Angular?

viewChild() reaches elements or components inside the component's own template, while contentChild() reaches content that a parent passes in through ng-content, known as content projection. In current Angular both are functions that return signals, so you read the value once it is ready without waiting for lifecycle hooks such as ngAfterViewInit. To get several at once, use viewChildren() or contentChildren(). Older code that uses the @ViewChild decorator still works.

What is NgRx, and how does it manage state in Angular?

NgRx is a set of state management libraries for Angular. Today NgRx SignalStore is widely used: you create a store with signalStore, compose it with withState, withComputed and withMethods, update data with patchState, and components read values directly as signals. The classic NgRx Store follows the Redux pattern, where components dispatch actions and reducers calculate the new state. It is still common in older systems and suits apps that need to track every change.

How do you attach a token to every request in Angular?

Use a functional HTTP interceptor: write a function that receives the request and next, clones the request and adds an Authorization header containing the user's token. Register it with provideHttpClient(withInterceptors([...])) in app.config.ts, and every request sent through HttpClient carries the token automatically. You should also handle 401 responses, and add a CanActivateFn or CanMatchFn guard to keep users who are not logged in out of protected pages.

Who is the Advanced Angular course for, and what should I know beforehand?

It suits developers who already write Angular and want to build large applications, tech leads or IT managers who set standards for their team's projects, people who maintain older Angular systems, and full-stack developers who want to connect Angular with Node.js. You should have some Angular experience, such as components, routing and HttpClient, be confident with TypeScript, and understand web services and databases at a basic level.

What will I be able to do after the Advanced Angular course?

You will be able to structure large Angular 22 applications, build reusable components and directives, use dependency injection in depth, manage state with signals, RxJS and NgRx SignalStore, add login and permissions with interceptors and guards, use Angular Material, build multilingual pages with i18n, speed up loading with @defer and SSR, write tests with Vitest and deploy alongside a Node.js API with Docker. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.

Can the Advanced Angular course be run in-house for our team?

Yes. This course can be run in-house for your team, with content adapted to your work, such as upgrading your organisation's older Angular projects, setting project structure standards, or connecting to the back end your team already uses. You can request a quotation from this page or contact us on LINE @itgenius or by phone on 02-570-8449.