![From Academia to Industry](https://cdn.sanity.io/images/cgdhsj6q/production/70501690bf807891573e259da9719cf24302c7e3-4288x2848.jpg?w=400&fit=max&auto=format)
Employee Spotlight
From Academia to Industry
Philipp Burckhardt recounts his journey from childhood computer fascinations, to building an e-learning platform at Carnegie Mellon University, and on to his current role at Socket.
@angular/forms
Advanced tools
Package description
The @angular/forms package is a part of the Angular framework that provides tools for creating and managing forms in Angular applications. It offers two approaches: Reactive Forms and Template-driven Forms, which allow developers to handle user input and form validation in a robust and scalable way.
Reactive Forms
Reactive Forms provide a model-driven approach to handling form inputs whose values change over time. This feature allows for more flexible, scalable, and testable forms.
import { ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [
// other imports ...
ReactiveFormsModule
],
})
export class AppModule { }
Template-driven Forms
Template-driven Forms are useful for adding simple forms to your app with minimal setup. They are less flexible than Reactive Forms but can be easier to use for basic scenarios.
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
// other imports ...
FormsModule
],
})
export class AppModule { }
Form Validation
The package provides built-in validators as well as the ability to create custom validators, making it easy to implement complex validation logic for form fields.
import { FormControl } from '@angular/forms';
let email = new FormControl('', [Validators.required, Validators.email]);
Form Groups
Form Groups are used to group together multiple form controls into one object, allowing for easier management of form data and validation.
import { FormGroup, FormControl } from '@angular/forms';
let userForm = new FormGroup({
firstName: new FormControl(),
lastName: new FormControl(),
age: new FormControl()
});
React Hook Form is a library for React that enables the management of forms with minimal re-renders. It is similar to @angular/forms in providing form validation and form state management, but it is designed specifically for React and uses hooks.
Formik is another popular form library for React. It simplifies the process of building, validating, and handling forms. It is comparable to @angular/forms in its functionality but is tailored to the React ecosystem.
Redux Form leverages Redux for form state management in React applications. It is similar to @angular/forms in that it handles form state and validation, but it integrates tightly with Redux for state management.
Changelog
18.1.0 (2024-07-10)
| Commit | Type | Description | | -- | -- | -- | | f25653e231 | fix | typo in NgOptimizedImage warning (#56756) | | 9b35726e42 | fix | typo in warning for NgOptimizedDirective (#56817) |
| Commit | Type | Description | | -- | -- | -- | | fd6cd0422d | feat | Add extended diagnostic to warn when there are uncalled functions in event bindings (#56295) | | 341a116d61 | fix | allow more characters in let declaration name (#56764) | | 2a1291e942 | fix | give precedence to local let declarations over parent ones (#56752) |
| Commit | Type | Description | | -- | -- | -- | | 66e582551e | fix | avoid duplicate diagnostics for let declarations read before definition (#56843) | | 4d18c5bfd5 | fix | flag all conflicts between let declarations and local symbols (#56752) | | 9e21582456 | fix | Show template syntax errors in local compilation modified (#55855) | | 5996502921 | fix | type check let declarations nested inside nodes (#56752) | | cdebf751e4 | fix | used before declared diagnostic not firing for control flow blocks (#56843) |
| Commit | Type | Description |
| -- | -- | -- |
| ea3c802056 | feat | Add a schematic to migrate afterRender phase flag (#55648) |
| 5df3e78c99 | feat | add equality function to rxjs-interop toSignal
(#56447) |
| 0a48d584f2 | feat | add support for let syntax (#56715) |
| 352e0782ec | feat | expose signal input metadata in ComponentMirror
(#56402) |
| a655e46447 | feat | Redesign the afterRender
& afterNextRender
phases API (#55648) |
| e5a6f91722 | feat | support TypeScript 5.5 (#56096) |
| 38effcc63e | fix | Add back phase flag option as a deprecated API (#55648) |
| 86bcfd3e49 | fix | improve docs on afterRender hooks (#56522) |
| b2445a0953 | fix | link errors to ADEV (#55554) (#56038) |
| 03a2acd2a3 | fix | properly remove imports in the afterRender phase migration (#56524) |
| 4d87b9e899 | fix | rename the equality function option in toSignal (#56769) (#56922) |
| 8bd4c074af | fix | toSignal equal option should be passed to inner computed (#56903) |
| Commit | Type | Description |
| -- | -- | -- |
| 00bde8b1c2 | fix | Make NgControlStatus
host bindings OnPush
compatible (#55720) |
| Commit | Type | Description |
| -- | -- | -- |
| cc21989132 | fix | Make Content-Type
header case insensitive (#56541) |
| Commit | Type | Description | | -- | -- | -- | | b400e2e4d4 | feat | autocompletion for the component not imported (#55595) | | 67b2c336bc | fix | import the default exported component correctly (#56432) |
| Commit | Type | Description |
| -- | -- | -- |
| a13f5da773 | feat | Allow UrlTree
as an input to routerLink
(#56265) |
| 1d3a7529b4 | feat | Set a different browser URL from the one for route matching (#53318) |
<a name="18.0.7"></a>
Readme
The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.
Usage information and reference details can be found in Angular documentation.
License: MIT
FAQs
Angular - directives and services for creating forms
The npm package @angular/forms receives a total of 2,587,377 weekly downloads. As such, @angular/forms popularity was classified as popular.
We found that @angular/forms demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Employee Spotlight
Philipp Burckhardt recounts his journey from childhood computer fascinations, to building an e-learning platform at Carnegie Mellon University, and on to his current role at Socket.
Security News
Git dependencies in open source packages can introduce significant risks, including lack of version control, stability issues, dependency drift, and difficulty in auditing, making them potential targets for supply chain attacks.
Security News
Node.js has added experimental support for TypeScript, a move that highlights the growing importance of TypeScript in modern development.