Fixed capitalization in sidenav menu items Add min height property to sidenav-content for better viewing on short pages or high resolution screens Add dividier between change log items as before to h2 Table adjustments to reduce off-screen items Update home page banner text and icon change, and fix banner img and mobile alignment Fix and add links in doc landing page and change card footer text to reflect correct name Removed docs landing page to rebase with master PR Close #16138
20 KiB
@title Cheat Sheet
@description
Bootstrapping |
|
---|---|
platformBrowserDynamic().bootstrapModule(AppModule); |
Bootstraps the app, using the root component from the specified |
NgModules |
|
---|---|
@NgModule({ declarations: ..., imports: ..., |
Defines a module that contains components, directives, pipes, and providers. |
declarations: [MyRedComponent, MyBlueComponent, MyDatePipe] |
List of components, directives, and pipes that belong to this module. |
imports: [BrowserModule, SomeOtherModule] |
List of modules to import into this module. Everything from the imported modules
is available to |
exports: [MyRedComponent, MyDatePipe] |
List of components, directives, and pipes visible to modules that import this module. |
providers: [MyService, { provide: ... }] |
List of dependency injection providers visible both to the contents of this module and to importers of this module. |
bootstrap: [MyAppComponent] |
List of components to bootstrap when this module is bootstrapped. |
Template syntax | |
---|---|
<input [value]="firstName"> |
Binds property |
<div [attr.role]="myAriaRole"> |
Binds attribute |
<div [class.extra-sparkle]="isDelightful"> |
Binds the presence of the CSS class |
<div [style.width.px]="mySize"> |
Binds style property |
<button (click)="readRainbow($event)"> |
Calls method |
<div title="Hello {{ponyName}}"> |
Binds a property to an interpolated string, for example, "Hello Seabiscuit". Equivalent to:
|
<p>Hello {{ponyName}}</p> |
Binds text content to an interpolated string, for example, "Hello Seabiscuit". |
<my-cmp [(title)]="name"> |
Sets up two-way data binding. Equivalent to: |
<video #movieplayer ...> |
Creates a local variable |
<p *myUnless="myExpression">...</p> |
The |
<p>Card No.: {{cardNumber | myCardNumberFormatter}}</p> |
Transforms the current value of expression |
<p>Employer: {{employer?.companyName}}</p> |
The safe navigation operator ( |
<svg:rect x="0" y="0" width="100" height="100"/> |
An SVG snippet template needs an |
<svg> |
An |
Built-in directives |
|
---|---|
<section *ngIf="showSection"> |
Removes or recreates a portion of the DOM tree based on the |
<li *ngFor="let item of list"> |
Turns the li element and its contents into a template, and uses that to instantiate a view for each item in list. |
<div [ngSwitch]="conditionExpression"> |
Conditionally swaps the contents of the div by selecting one of the embedded templates based on the current value of |
<div [ngClass]="{active: isActive, disabled: isDisabled}"> |
Binds the presence of CSS classes on the element to the truthiness of the associated map values. The right-hand expression should return {class-name: true/false} map. |
Forms |
|
---|---|
<input [(ngModel)]="userName"> |
Provides two-way data-binding, parsing, and validation for form controls. |
Class decorators |
|
---|---|
@Component({...}) |
Declares that a class is a component and provides metadata about the component. |
@Directive({...}) |
Declares that a class is a directive and provides metadata about the directive. |
@Pipe({...}) |
Declares that a class is a pipe and provides metadata about the pipe. |
@Injectable() |
Declares that a class has dependencies that should be injected into the constructor when the dependency injector is creating an instance of this class. |
Directive configuration |
|
---|---|
selector: '.cool-button:not(a)' |
Specifies a CSS selector that identifies this directive within a template. Supported selectors include Does not support parent-child relationship selectors. |
providers: [MyService, { provide: ... }] |
List of dependency injection providers for this directive and its children. |
Component configuration |
|
---|---|
moduleId: module.id |
If set, the |
viewProviders: [MyService, { provide: ... }] |
List of dependency injection providers scoped to this component's view. |
template: 'Hello {{name}}' |
Inline template or external template URL of the component's view. |
styles: ['.primary {color: red}'] |
List of inline CSS styles or external stylesheet URLs for styling the component’s view. |
Class field decorators for directives and components |
|
---|---|
@Input() myProperty; |
Declares an input property that you can update via property binding (example:
|
@Output() myEvent = new EventEmitter(); |
Declares an output property that fires events that you can subscribe to with an event binding (example: |
@HostBinding('class.valid') isValid; |
Binds a host element property (here, the CSS class |
@HostListener('click', ['$event']) onClick(e) {...} |
Subscribes to a host element event ( |
@ContentChild(myPredicate) myChildComponent; |
Binds the first result of the component content query ( |
@ContentChildren(myPredicate) myChildComponents; |
Binds the results of the component content query ( |
@ViewChild(myPredicate) myChildComponent; |
Binds the first result of the component view query ( |
@ViewChildren(myPredicate) myChildComponents; |
Binds the results of the component view query ( |
Directive and component change detection and lifecycle hooks | (implemented as class methods) |
---|---|
constructor(myService: MyService, ...) { ... } |
Called before any other lifecycle hook. Use it to inject dependencies, but avoid any serious work here. |
ngOnChanges(changeRecord) { ... } |
Called after every change to input properties and before processing content or child views. |
ngOnInit() { ... } |
Called after the constructor, initializing input properties, and the first call to |
ngDoCheck() { ... } |
Called every time that the input properties of a component or a directive are checked. Use it to extend change detection by performing a custom check. |
ngAfterContentInit() { ... } |
Called after |
ngAfterContentChecked() { ... } |
Called after every check of the component's or directive's content. |
ngAfterViewInit() { ... } |
Called after |
ngAfterViewChecked() { ... } |
Called after every check of the component's view. Applies to components only. |
ngOnDestroy() { ... } |
Called once, before the instance is destroyed. |
Dependency injection configuration | |
---|---|
{ provide: MyService, useClass: MyMockService } |
Sets or overrides the provider for |
{ provide: MyService, useFactory: myFactory } |
Sets or overrides the provider for |
{ provide: MyValue, useValue: 41 } |
Sets or overrides the provider for |
Routing and navigation |
|
---|---|
const routes: Routes = [ |
Configures routes for the application. Supports static, parameterized, redirect, and wildcard routes. Also supports custom route data and resolve. |
|
Marks the location to load the component of the active route. |
|
Creates a link to a different view based on a route instruction consisting of a route path, required and optional parameters, query parameters, and a fragment. To navigate to a root route, use the |
<a [routerLink]="[ '/path' ]" routerLinkActive="active"> |
The provided classes are added to the element when the |
class CanActivateGuard implements CanActivate { |
An interface for defining a class that the router should call first to determine if it should activate this component. Should return a boolean or an Observable/Promise that resolves to a boolean. |
class CanDeactivateGuard implements CanDeactivate<T> { |
An interface for defining a class that the router should call first to determine if it should deactivate this component after a navigation. Should return a boolean or an Observable/Promise that resolves to a boolean. |
class CanActivateChildGuard implements CanActivateChild { |
An interface for defining a class that the router should call first to determine if it should activate the child route. Should return a boolean or an Observable/Promise that resolves to a boolean. |
class ResolveGuard implements Resolve<T> { |
An interface for defining a class that the router should call first to resolve route data before rendering the route. Should return a value or an Observable/Promise that resolves to a value. |
class CanLoadGuard implements CanLoad { |
An interface for defining a class that the router should call first to check if the lazy loaded module should be loaded. Should return a boolean or an Observable/Promise that resolves to a boolean. |