The rationale of this change is to improve the inter-operability with web
components that might make use of the `<template>` tag.
DEPRECATION
The template tags and template attribute are deprecated:
<template ngFor [ngFor]=items let-item><li>...</li></template>
<li template="ngFor: let item of items">...</li>
should be rewritten as:
<ng-template ngFor [ngFor]=items let-item><li>...</li></ng-template>
Note that they still be supported in 4.x with a deprecartion warning in
development mode.
MIGRATION
- `template` tags (or elements with a `template` attribute) should be rewritten
as a `ng-template` tag,
- `ng-content` selectors should be updated to referto a `ng-template` where they
use to refer to a template: `<ng-content selector="template[attr]">` should be
rewritten as `<ng-content selector="ng-template[attr]">`
- if you consume a component relying on your templates being actual `template`
elements (that is they include a `<ng-content selector="template[attr]">`). You
should still migrate to `ng-template` and make use of `ngProjectAs` to override
the way `ng-content` sees the template:
`<ng-template projectAs="template[attr]">`
- while `template` elements are deprecated in 4.x they continue to work.
2.9 KiB
@cheatsheetSection Template syntax @cheatsheetIndex 2 @description
@cheatsheetItem
syntax:
<input [value]="firstName">|[value]
description:
Binds property value to the result of expression firstName.
@cheatsheetItem
syntax:
<div [attr.role]="myAriaRole">|[attr.role]
description:
Binds attribute role to the result of expression myAriaRole.
@cheatsheetItem
syntax:
<div [class.extra-sparkle]="isDelightful">|[class.extra-sparkle]
description:
Binds the presence of the CSS class extra-sparkle on the element to the truthiness of the expression isDelightful.
@cheatsheetItem
syntax:
<div [style.width.px]="mySize">|[style.width.px]
description:
Binds style property width to the result of expression mySize in pixels. Units are optional.
@cheatsheetItem
syntax:
<button (click)="readRainbow($event)">|(click)
description:
Calls method readRainbow when a click event is triggered on this button element (or its children) and passes in the event object.
@cheatsheetItem
syntax:
<div title="Hello {{ponyName}}">|{{ponyName}}
description:
Binds a property to an interpolated string, for example, "Hello Seabiscuit". Equivalent to:
<div [title]="'Hello ' + ponyName">
@cheatsheetItem
syntax:
<p>Hello {{ponyName}}</p>|{{ponyName}}
description:
Binds text content to an interpolated string, for example, "Hello Seabiscuit".
@cheatsheetItem
syntax:
<my-cmp [(title)]="name">|[(title)]
description:
Sets up two-way data binding. Equivalent to: <my-cmp [title]="name" (titleChange)="name=$event">
@cheatsheetItem
syntax:
<video #movieplayer ...> <button (click)="movieplayer.play()"> </video>|#movieplayer|(click)
description:
Creates a local variable movieplayer that provides access to the video element instance in data-binding and event-binding expressions in the current template.
@cheatsheetItem
syntax:
<p *myUnless="myExpression">...</p>|*myUnless
description:
The * symbol turns the current element into an embedded template. Equivalent to:
<ng-template [myUnless]="myExpression"><p>...</p></ng-template>
@cheatsheetItem
syntax:
<p>Card No.: {{cardNumber | myCardNumberFormatter}}</p>|{{cardNumber | myCardNumberFormatter}}
description:
Transforms the current value of expression cardNumber via the pipe called myCardNumberFormatter.
@cheatsheetItem
syntax:
<p>Employer: {{employer?.companyName}}</p>|{{employer?.companyName}}
description:
The safe navigation operator (?) means that the employer field is optional and if undefined, the rest of the expression should be ignored.
@cheatsheetItem
syntax:
<svg:rect x="0" y="0" width="100" height="100"/>|svg:
description:
An SVG snippet template needs an svg: prefix on its root element to disambiguate the SVG element from an HTML component.
@cheatsheetItem
syntax:
<svg> <rect x="0" y="0" width="100" height="100"/> </svg>|svg
description:
An <svg> root element is detected as an SVG element automatically, without the prefix.