angular.io Open in urlscan Pro
151.101.65.195  Public Scan

Submitted URL: http://1698177302305.roughlyjistion.uk/5d5bfbea-ba25-4217-ad04-bad698f53464?n=1&t=1698177302305&l_next=ahr0chm6ly93d3cuehvuyxntaxryyxjv...
Effective URL: https://angular.io/
Submission: On January 23 via api from US — Scanned from US

Form analysis 0 forms found in the DOM

Text Content

COOKIES CONCENT NOTICE

This site uses cookies from Google to deliver its services and to analyze
traffic.
Learn more OK, got it
Skip to main content
Share your experience with Angular in The State of JavaScriptGo to survey
 * Docs
 * Community
 * Blog
   

/
dark_mode



Introduction
Getting started
What is Angular?
Try it
Getting started
Adding navigation
Managing data
Using forms for user input
Deploying an application
Setup
Understanding Angular
Overview
Components
Overview
Component lifecycle
View encapsulation
Component interaction
Component styles
Sharing data between child and parent directives and components
Content projection
Dynamic components
Angular elements
Templates
Overview
Introduction
Text interpolation
Template statements
Binding
Understanding binding
Property binding
Attribute binding
Class and style binding
Event binding
Two-way binding
Pipes
Understanding pipes
Using a pipe in a template
Transforming data with parameters and chained pipes
Pipe precedence in template expressions
Template reference variables
SVG as templates
Directives
Built-in directives
Attribute directives
Structural directives
Directive composition API
Dependency injection
Dependency injection in Angular
Understanding dependency injection
Creating an injectable service
Defining dependency providers
Injection context
Hierarchical injectors
Developer guides
Overview
Standalone
Standalone components
Migrating to standalone
Change detection
Overview
Zone pollution
Slow computations
Skipping component subtrees
Routing and navigation
Overview
Common routing tasks
Tutorial: routing in single-page applications
Tutorial: creating custom route matches
Tutorial: adding routing to Tour of Heroes
Router reference
Forms
Introduction
Reactive forms
Strictly typed reactive forms in depth
Validate form input
Building dynamic forms
esbuild-based Builds
HTTP client
Understanding HTTP
Setup for server communication
Request data from a server
Make a JSONP request
Handle request errors
Send data to a server
Configure URL parameters
Intercept requests and responses
Interceptor use-cases
Pass metadata to interceptors
Track and show request progress
Optimize server communication
Cross-Site Request Forgery (XSRF) protection
Test requests
Hydration
Deferrable views
Image optimization
Testing
Intro to testing
Code coverage
Testing services
Basics of testing components
Component testing scenarios
Testing attribute directives
Testing pipes
Debugging tests
Testing utility APIs
Internationalization
Overview
Common internationalization tasks
Overview
Add the localize package
Refer to locales by ID
Format data based on locale
Prepare component for translation
Work with translation files
Merge translations into the app
Deploy multiple locales
Example Angular application
Optional internationalization practices
Overview
Import global variants of the locale data
Manage marked text with custom IDs
Animations
Introduction
Transition and Triggers
Complex Sequences
Reusable Animations
Route transition animations
Service Workers & PWA
Introduction
Getting started
Service worker communication
Service worker notifications
Service worker in production
Service worker configuration
App shell
Web workers
Server-side rendering
Prerendering
Angular Libraries
Libraries overview
Using published libraries
Creating libraries
Angular package format
Feature preview
Built-in control flow
Signals
RxJS Interop for Signals
Best practices
Security
Accessibility
Keeping up-to-date
Property binding best practices
Lazy loading feature modules
Lightweight injection tokens for libraries
Angular tools
Development workflow
Deploying applications
AOT compiler
Ahead-of-Time compilation
Angular compiler options
AOT metadata errors
Template type-checking
Building & serving
CLI builders
Language service
DevTools
Schematics
Schematics Overview
Authoring schematics
Schematics for libraries
Tutorials
Tutorial: Your first Angular app
Introduction
Hello world
Create home component
Create housing location component
Create an interface
Add inputs to components
Add property binding to components
Add dynamic values to templates
Use *ngFor in templates
Angular services
Add routing
Customize the details page
Integrate Angular forms
Add search functionality
Add HTTP communication
Tutorial: Tour of Heroes
Introduction
Create a project
1. The hero editor
2. Display a list
3. Create a feature component
4. Add services
5. Add navigation
6. Get data from a server
Building a template-driven form
Updates and releases
Update Angular to the latest version
Roadmap
Release practices
Version compatibility
Browser support
Deprecations
Upgrading from AngularJS
Upgrade instructions
Setup for upgrading from AngularJS
Upgrading for performance
AngularJS to Angular concepts
Reference
Conceptual reference
Angular concepts
Intro to basic concepts
Intro to components
Intro to services and DI
Binding syntax
How event binding works
Template variables
Next steps
Workspace and project structure
Project file structure
Workspace configuration
npm dependencies
TypeScript configuration
NgModules
NgModules introduction
JS Modules vs NgModules
Launching apps with a root module
Frequently used NgModules
Types of feature modules
Feature modules
Providing dependencies
Singleton services
Sharing NgModules
NgModule API
NgModule FAQs
Observables & RxJS
Observables overview
The RxJS library
Observables in Angular
Practical usage
Compare to other techniques
Dependency injection
DI in action
CLI Command Reference
Overview
ng add
ng analytics
ng build
ng cache
ng completion
ng config
ng deploy
ng doc
ng e2e
ng extract-i18n
ng generate
ng lint
ng new
ng run
ng serve
ng test
ng update
ng version
API reference
Error reference
NG0100: Expression Changed After Checked
NG01101: Wrong Async Validator Return Type
NG01203: Missing value accessor
NG0200: Circular Dependency in DI
NG0201: No Provider Found
NG0203: `inject()` must be called from an injection context
NG0209: Invalid multi provider
NG02200: Missing Iterable Differ
NG02800: JSONP support in HttpClient configuration
NG0300: Selector Collision
NG0301: Export Not Found
NG0302: Pipe Not Found
NG0403: Bootstrapped NgModule doesn't specify which component to initialize
NG0500: Hydration Node Mismatch
NG0501: Hydration Missing Siblings
NG0502: Hydration Missing Node
NG0503: Hydration Unsupported Projection of DOM Nodes
NG0504: Skip hydration flag is applied to an invalid node
NG0505: No hydration info in server response
NG0506: NgZone remains unstable
NG0507: HTML content was altered after server-side rendering
NG05104: Root element was not found.
NG0602: Disallowed function call inside reactive context
NG0910: Unsafe bindings on an iframe element
NG0912: Component ID generation collision
NG0913: Runtime Performance Warnings
NG0950: Input is required but no value is available yet.
NG1001: Argument Not Literal
NG2003: Missing Token
NG2009: Invalid Shadow DOM selector
NG3003: Import Cycle Detected
NG5000: Hydration with unsupported Zone.js instance.
NG6100: NgModule.id Set to module.id anti-pattern
NG8001: Invalid Element
NG8002: Invalid Attribute
NG8003: Missing Reference Target
Extended diagnostic reference
Extended Diagnostics Overview
NG8101: Invalid Banana-in-Box
NG8102: Nullish coalescing not nullable
NG8103: Missing control flow directive
NG8104: Text attribute not binding
NG8105: Missing `let` keyword in an *ngFor expression
NG8106: Suffix not supported
NG8107: Optional chain not nullable
NG8108: ngSkipHydration should be a static attribute
NG8109: Signals must be invoked in template interpolations.
Example applications
Angular glossary
Angular coding style
Quick reference
Coding style guide
Documentation contributors guide
Overview
Common documentation maintenance tasks
Overview
Review documentation
Update search keywords
Documentation editing workflow
Overview
Prepare to edit documentation
Select a documentation issue
Start to edit a documentation topic
Make and save changes to a documentation topic
Resolve documentation linter messages
Build and test documentation
Prepare documentation for a pull request
Open a documentation pull request
Update a documentation pull request in progress
Finish up a documentation pull request
Documentation style guide
Angular doc localization guidelines
Docs Versions
next
rc
stable
v16
v15
v14
v13
v12
v11
v10
v9
v8
v7
v6
v5
v4
v2



DELIVER WEB APPS
WITH CONFIDENCE

Try Angular


THE WEB DEVELOPMENT FRAMEWORK FOR BUILDING THE FUTURE


WORKS AT ANY SCALE



Angular lets you start small and supports you as your team and apps grow.

Read how Angular helps you grow


LOVED BY MILLIONS



Join the millions of developers building with Angular in a thriving and friendly
community.

Meet the Angular community


BUILD FOR EVERYONE



Rely on Angular's internationalization tools, security, and accessibility to
build for everyone around the world.

Learn more about Angular's tools

Learn more

Resources
 * About
 * Resource listing
 * Press kit
 * Blog
   

Help
 * Stack Overflow
 * Join Discord
 * Gitter
 * Report Issues
 * Code of Conduct
 * Privacy Policy
   

Community
 * Events
 * Meetups
 * Twitter
 * GitHub
 * Contribute
   

Languages
 * 简体中文版
 * 正體中文版
 * 日本語版
 * 한국어
 * Complete language list
   

Super-powered by Google ©2010-2024.

Code licensed under an MIT-style License. Documentation licensed under CC BY
4.0.

Version 17.1.1-local+sha.9a9a00e.


The modern web
developer's platform


THIS WEBSITE REQUIRES JAVASCRIPT.