What is @angular/common?
The @angular/common package is a core Angular library that provides commonly needed services, pipes, and directives that are essential for application development. It is part of the Angular framework and is used for tasks such as HTTP communication, localization, and various utility functions.
What are @angular/common's main functionalities?
HTTP Client
Provides a simplified API for HTTP functionality which allows performing HTTP requests and handling responses within an Angular application.
import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [
HttpClientModule
]
})
export class AppModule { }
Common Directives
Includes directives like ngIf, ngFor, and ngSwitch which are essential for controlling the rendering of the template.
import { CommonModule } from '@angular/common';
@NgModule({
imports: [
CommonModule
]
})
export class SharedModule { }
Location Services
Provides services for interacting with the browser's URL. Useful for routing and navigation within an Angular application.
import { Location } from '@angular/common';
@Component({
selector: 'app-component',
template: '<p>Current path: {{ location.path() }}</p>'
})
export class AppComponent {
constructor(public location: Location) { }
}
Date, Currency, and Decimal Pipes
Provides built-in pipes for formatting data such as dates, currency, and numbers.
import { DatePipe, CurrencyPipe, DecimalPipe } from '@angular/common';
@Component({
selector: 'app-component',
template: '<p>Today is {{ today | date }}</p><p>Amount: {{ amount | currency }}</p>'
})
export class AppComponent {
today = new Date();
amount = 1234.56;
}
Other packages similar to @angular/common
react
React is a JavaScript library for building user interfaces. While it is not a one-to-one comparison with @angular/common, React provides a component-based architecture similar to Angular's directives and services.
vue
Vue.js is a progressive JavaScript framework used for building UIs and single-page applications. It offers similar directives and reactivity systems but is generally considered to be more lightweight and easier to integrate into projects than Angular.
axios
Axios is a promise-based HTTP client for the browser and Node.js. It provides many of the same HTTP client capabilities as the HttpClientModule in @angular/common.
moment
Moment.js is a library for parsing, validating, manipulating, and formatting dates. It is similar to the DatePipe in @angular/common but is a standalone library focused solely on date manipulation.
14.1.0 (2022-07-20)
Deprecations
core
- The
createNgModuleRef
is deprecated in favor of newly added createNgModule
one. - The bit field signature of
inject()
has been deprecated, in favor of the
new options object. Correspondingly, InjectFlags
is deprecated as well.
animations
| Commit | Type | Description |
| -- | -- | -- |
| 55308f2df5 | feat | add provideAnimations()
and provideNoopAnimations()
functions (#46793) |
common
| Commit | Type | Description |
| -- | -- | -- |
| 4a2e7335b1 | feat | make the CommonModule
pipes standalone (#46401) |
| a7597dd080 | feat | make the CommonModule directives standalone (#46469) |
compiler
| Commit | Type | Description |
| -- | -- | -- |
| 33ce3883a5 | feat | Add extended diagnostic to warn when missing let on ngForOf (#46683) |
| 6f11a58040 | feat | Add extended diagnostic to warn when text attributes are intended to be bindings (#46161) |
| 9e836c232f | feat | warn when style suffixes are used with attribute bindings (#46651) |
compiler-cli
| Commit | Type | Description |
| -- | -- | -- |
| 93c65e7b14 | feat | add extended diagnostic for non-nullable optional chains (#46686) |
| 131d029da1 | feat | detect missing control flow directive imports in standalone components (#46146) |
| 6b8e60c06a | fix | improve the missingControlFlowDirective message (#46846) |
core
| Commit | Type | Description |
| -- | -- | -- |
| e8e8e5f171 | feat | add createComponent
function |
| b5153814af | feat | add reflectComponentType
function |
| 96c6139c9a | feat | add ability to set inputs on ComponentRef (#46641) |
| a6d5fe202c | feat | alias createNgModuleRef
as createNgModule
(#46789) |
| 71e606d3c3 | feat | expose EnvironmentInjector on ApplicationRef (#46665) |
| 19e6d9ccd3 | feat | import AsyncStackTaggingZone if available (#46693) |
| a7a14df5f8 | feat | introduce EnvironmentInjector.runInContext
API (#46653) |
| fa52b6e906 | feat | options object to supersede bit flags for inject()
(#46649) |
| af20112222 | feat | support the descendants option for ContentChild queries (#46638) |
| 945a3ad359 | fix | Fix runInContext
for NgModuleRef
injector (#46877) |
| bb7c80477b | fix | make parent injector argument required in createEnvironmentInjector
(#46397) |
http
| Commit | Type | Description |
| -- | -- | -- |
| 82acbf919b | feat | improve error message for nullish header (#46059) |
router
| Commit | Type | Description |
| -- | -- | -- |
| 53ca936366 | feat | Add ability to create UrlTree
from any ActivatedRouteSnapshot
(#45877) |
| de058bba99 | feat | Add CanMatch guard to control whether a Route should match (#46021) |
| 6c1357dd7d | feat | Add stable cancelation code to NavigationCancel
event (#46675) |
| a4ce273e50 | feat | Add the target RouterStateSnapshot
to NavigationError
(#46731) |
| abe3759e24 | fix | allow to return UrlTree
from CanMatchFn
(#46455) |
| e8c7dd10e9 | fix | Ensure APP_INITIALIZER
of enabledBlocking
option completes (#46026) |
| ce20ed067f | fix | Ensure Route injector is created before running CanMatch guards (#46394) |
| 6a7b818d94 | fix | Ensure target RouterStateSnapshot
is defined in NavigationError
(#46842) |
| f94c6f433d | fix | Expose CanMatchFn as public API (#46394) |
| e8ae0fe3e9 | fix | Fix cancelation code for canLoad rejections (#46752) |
upgrade
| Commit | Type | Description |
| -- | -- | -- |
| e9cb0454dc | feat | more closely align UpgradeModule#bootstrap()
with angular.bootstrap()
(#46214) |
Special Thanks
AleksanderBodurri, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Cédric Exbrayat, Dmitrij Kuba, Dylan Hunn, George Kalpakas, Jessica Janiuk, JiaLiPassion, Joey Perrott, John Vandenberg, JoostK, Keith Li, Or'el Ben-Ya'ir, Paul Gschwendtner, Pawel Kozlowski, SyedAhm3r, arturovt, mariu, markostanimirovic and mgechev
<!-- CHANGELOG SPLIT MARKER -->
<a name="14.0.7"></a>