Deliver web apps with confidence 🚀
Find a file
Leon Senft effccffde0 refactor(core): add framework support for binding form controls (#63773)
Move most of the implementation of the `Control` directive into core
framework instructions. This allows field state changes to be propagated
to their corresponding UI controls directly during execution of a
template update block, instead of relying on `effect()`s to synchronize
each change later during the update (and too late in the case of
required inputs).

* Define a private API in `@angular/core` for signal forms to implement:
  * `ɵControl` for the `Control` directive.
  * `ɵFieldState` for the control's associated `FieldState`.
* Emit specialized instructions when compiling a `[control]` binding:
  * `ɵɵcontrolCreate` sets up the `ɵControl` directive if present,
    determines whether it's bound to a native control element or a
    custom control component, and adds the appropriate event listeners
    to notify the `ɵFieldState` of UI changes.
  * `ɵɵcontrol` propagates changes from `ɵFieldState` properties to their
    corresponding UI control properties (in additional to binding the `control`
    property itself).

PR Close #63773
2025-10-04 13:21:55 -07:00
.devcontainer build: use pnpm as the package manager instead of yarn (#62924) 2025-07-31 22:06:27 +00:00
.gemini ci: add gemini code assist config (#62560) 2025-07-09 12:42:45 -07:00
.github build: update peter-evans/create-or-update-comment action to v5 (#64211) 2025-10-02 13:25:15 -07:00
.husky build: use pnpm as the package manager instead of yarn (#62924) 2025-07-31 22:06:27 +00:00
.ng-dev build: migrate vscode extension into repo (#63924) 2025-09-24 20:24:32 +00:00
.vscode build: migrate vscode extension into repo (#63924) 2025-09-24 20:24:32 +00:00
adev docs: add info about disabling request caching (#64216) 2025-10-03 17:18:59 +00:00
contributing-docs docs: remove leading $ from script examples (#63795) 2025-09-16 14:54:03 +00:00
devtools refactor(devtools): visual separation between directives in the property tab (#64222) 2025-10-03 15:05:50 +00:00
goldens refactor(core): add framework support for binding form controls (#63773) 2025-10-04 13:21:55 -07:00
integration build: update dependency typescript to v5.9.3 (#64207) 2025-10-02 20:48:42 +00:00
modules build: update all non-major dependencies (#64218) 2025-10-03 07:51:33 -07:00
packages refactor(core): add framework support for binding form controls (#63773) 2025-10-04 13:21:55 -07:00
scripts ci: correctly check for outputPaths to exist before deleting them (#64137) 2025-09-29 12:01:34 -04:00
third_party build: drop usage of pkg_web (#62990) 2025-08-05 10:08:47 +02:00
tools build: add a noDuplicateEnumValue rule (#63483) 2025-09-10 22:16:10 +00:00
vscode-ng-language-service build: update dependency typescript to v5.9.3 (#64207) 2025-10-02 20:48:42 +00:00
.bazelignore refactor(language-service): remove some old ivy/pre-apf things (#64157) 2025-09-30 14:48:24 -04:00
.bazelrc build: remove bazel flag usage for adev (#63845) 2025-09-16 20:49:04 +00:00
.bazelversion build: update all non-major dependencies (#62935) 2025-08-14 22:09:29 +02:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.git-blame-ignore-revs build: exclude relative imports commits via .git-blame-ignore-revs (#60680) 2025-04-01 20:18:36 +00:00
.gitattributes build: cleanup .gitattributes file and remove outdated CRLF attribute (#46513) 2022-06-28 13:38:27 -07:00
.gitignore build: add .vscode files back to the .gitignore (#64059) 2025-09-25 14:15:59 -04:00
.gitmessage docs: move commit message guidelies to a separate file (#58786) 2025-03-04 19:35:54 +00:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.npmrc build: ensure optimization rule can use compiler-cli from HEAD (#61810) 2025-06-02 09:52:57 -04:00
.nvmrc build: update dependency node to v22.20.0 (#64081) 2025-09-25 15:01:11 -04:00
.pnpmfile.cjs build: migrate vscode extension into repo (#63924) 2025-09-24 20:24:32 +00:00
.prettierignore build: add .prettierignore configuration file (#61087) 2025-05-02 09:12:23 -07:00
.prettierrc build: Update prettierrc to always use trailing commas (#58266) 2024-11-04 18:14:05 +01:00
.pullapprove.yml ci: update pullapprove config (#64086) 2025-09-25 14:34:41 -04:00
browser-providers.conf.d.ts build: share Saucelabs browsers between karma test targets using background Saucelabs daemon and custom karma launcher (#49200) 2023-05-15 09:21:46 -07:00
browser-providers.conf.js refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
BUILD.bazel build: remove yarn from integration tests, switch to pnpm (#63902) 2025-09-18 14:39:51 +00:00
CHANGELOG.md release: cut the v21.0.0-next.6 release 2025-10-02 08:25:16 -04:00
CHANGELOG_ARCHIVE.md docs: fix typos 2023-06-22 12:56:49 +02:00
CODE_OF_CONDUCT.md build: update CODE_OF_CONDUCT.md to match the content of angular/.github 2023-03-13 21:07:51 +00:00
context7.json docs: add context7.json config (#63000) 2025-08-05 18:15:38 +02:00
CONTRIBUTING.md refactor(devtools): inject number and symbol values with injection tokens (#56898) 2025-06-25 17:02:54 +00:00
gulpfile.js refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
karma-js.conf.js build: update to bazel 7.6.0 (#63096) 2025-08-14 13:01:30 +02:00
LICENSE docs: update copyright year (#59359) 2025-01-06 19:58:30 +00:00
MODULE.bazel build: update dependency typescript to v5.9.3 (#64207) 2025-10-02 20:48:42 +00:00
MODULE.bazel.lock build: update dependency typescript to v5.9.3 (#64207) 2025-10-02 20:48:42 +00:00
package.json build: update dependency typescript to v5.9.3 (#64207) 2025-10-02 20:48:42 +00:00
packages.bzl build: remove local zone.js build from usage in integration tests (#62775) 2025-07-25 16:53:00 +02:00
pnpm-lock.yaml build: update all non-major dependencies (#64218) 2025-10-03 07:51:33 -07:00
pnpm-workspace.yaml refactor(language-service): remove some old ivy/pre-apf things (#64157) 2025-09-30 14:48:24 -04:00
README.md docs: replace material.a.io with material.a.dev (#61513) 2025-05-20 13:40:42 +00:00
renovate.json refactor(language-service): remove some old ivy/pre-apf things (#64157) 2025-09-30 14:48:24 -04:00
SECURITY.md docs: update security guide link to adev (#56469) 2024-06-17 08:54:08 -07:00
tsconfig-tslint.json build: update tslint configuration (#61146) 2025-05-06 13:35:24 -07:00
tslint.json build: add a noDuplicateEnumValue rule (#63483) 2025-09-10 22:16:10 +00:00

Angular - The modern web developer's platform

angular-logo
Angular is a development platform for building mobile and desktop web applications
using TypeScript/JavaScript and other languages.

angular.dev

Contributing Guidelines · Submit an Issue · Blog

Angular on npm


Documentation

Get started with Angular, learn the fundamentals and explore advanced topics on our documentation website.

Advanced

Local Development

To contribute to the Angular Docs, check out the Angular.dev README

Development Setup

Prerequisites

Setting Up a Project

Install the Angular CLI globally:

npm install -g @angular/cli

Create workspace:

ng new [PROJECT NAME]

Run the application:

cd [PROJECT NAME]
ng serve

Angular is cross-platform, fast, scalable, has incredible tooling, and is loved by millions.

Quickstart

Get started in 5 minutes.

Ecosystem

angular ecosystem logos

Changelog

Learn about the latest improvements.

Upgrading

Check out our upgrade guide to find out the best way to upgrade your project.

Contributing

Contributing Guidelines

Read through our contributing guidelines to learn about our submission process, coding rules, and more.

Want to Help?

Want to report a bug, contribute some code, or improve the documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues labeled as help wanted or good first issue.

Code of Conduct

Help us keep Angular open and inclusive. Please read and follow our Code of Conduct.

Community

Join the conversation and help the community.

Love Angular badge

Love Angular? Give our repo a star ⬆️.