Deliver web apps with confidence 🚀
Find a file
Leon Senft 44cd18c183 refactor(forms): remove a TODO and simplify update on <select> mutations
Remove an unnecessary TODO comment. The native `<select>` tracks its
`value` by keeping track of the selected `<option>`. Thus if the value
was set *before* the corresponding option is created, the `<select>`
will ignore it, but the framework doesn't know that and will cache the
bound value anyways. Therefore, checking if the value changed since it
was last bound when the mutation that creates the selected `<option>`
occurs would in fact prevent a needed update, leaving the `<select>` and
field values out of sync.

Furthermore, we know the control type is a native `<select>` element, so
we can update its value directly instead of going through
`updateNativeControl()` which would perform a redundant input type
check.
2025-11-10 07:47:58 -08: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 cross-repo angular dependencies 2025-11-06 15:28:11 -08:00
.husky build: use pnpm as the package manager instead of yarn (#62924) 2025-07-31 22:06:27 +00:00
.ng-dev Revert "refactor(compiler-cli): remove deep imports from compiler-cli (#64732)" 2025-11-06 13:09:01 -08:00
.vscode build: use @angular/language-service from source (#64306) 2025-10-09 10:00:31 -07:00
adev docs(core): add a11y considerations related to @defer() 2025-11-07 15:27:10 -08:00
contributing-docs build: format md files 2025-11-06 10:03:05 -08:00
dev-app build: update rules_angular to latest 2025-11-07 11:43:24 -08:00
devtools fix(devtools): message bus URI conflict between dev and prod apps 2025-11-10 07:47:37 -08:00
goldens perf(forms): only update interop controls when bound field changes 2025-11-07 11:58:17 -08:00
integration build: format md files 2025-11-06 10:03:05 -08:00
modules build: format md files 2025-11-06 10:03:05 -08:00
packages refactor(forms): remove a TODO and simplify update on <select> mutations 2025-11-10 07:47:58 -08:00
scripts build: update diff release package script 2025-11-05 15:24:50 -08:00
third_party build: drop usage of pkg_web (#62990) 2025-08-05 10:08:47 +02:00
tools Revert "refactor(compiler-cli): remove deep imports from compiler-cli (#64732)" 2025-11-06 13:09:01 -08:00
vscode-ng-language-service fix(language-service): address potential memory leak during project creation 2025-11-07 11:57:22 -08:00
.bazelignore build: add a dev-app 2025-11-06 09:05:32 -08:00
.bazelrc build: use snapshot builds for dependencies in @angular/language-server (#64334) 2025-10-10 06:48:51 -07:00
.bazelversion build: update dependency bazel to v7.7.0 2025-10-31 21:52:29 +00: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.21.1 2025-10-29 10:41:52 +01:00
.pnpmfile.cjs build: update typescript to 5.9.3 2025-10-29 10:46:48 +01: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 handle for jkrems/hybrist 2025-11-03 19:43:52 +00: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: use snapshot builds for dependencies in @angular/language-server (#64334) 2025-10-10 06:48:51 -07:00
CHANGELOG.md build: format md files 2025-11-06 10:03:05 -08:00
CHANGELOG_ARCHIVE.md build: format md files 2025-11-06 10:03:05 -08:00
CODE_OF_CONDUCT.md build: format md files 2025-11-06 10:03:05 -08:00
context7.json docs: add context7.json config (#63000) 2025-08-05 18:15:38 +02:00
CONTRIBUTING.md build: format md files 2025-11-06 10:03:05 -08: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 rules_angular to latest 2025-11-07 11:43:24 -08:00
MODULE.bazel.lock build: update cross-repo angular dependencies 2025-11-06 07:47:07 -08:00
package.json refactor: add production devserver to dev-app 2025-11-07 10:12:58 -08:00
packages.bzl build: remove unneeded language-service dependency (#64306) 2025-10-09 10:00:31 -07:00
pnpm-lock.yaml build: update rules_angular to latest 2025-11-07 11:43:24 -08:00
pnpm-workspace.yaml build: add a dev-app 2025-11-06 09:05:32 -08:00
README.md docs: replace material.a.io with material.a.dev (#61513) 2025-05-20 13:40:42 +00:00
renovate.json release: bump the next branch to v21.1.0-next.0 2025-10-22 14:27:02 -07: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 ⬆️.