¡Esta es una revisión vieja del documento!
Podemos ampliar el HTML de nuestra página:
<h3>
{{title}}
<img src="{{heroImageUrl}}" style="height:30px">
</h3>
También evaluar expresiones:
<p>The sum of 1 + 1 is {{1 + 1}}</p>
<p>The sum of 1 + 1 is not {{1 + 1 + getVal()}}</p>
En esta evaluación de expresiones podemos usar el new de JS, encadenar expresiones con ; pero no podemos acceder al window, document, console.log o Math.max (sólo permite los miembros del contexto).
Cuando vemos algo tipo {{title}} nos referimos a la propiedad title del componente. Cuando vemos algo así [disabled]=“isUnchanged” nos referimos a la propiedad isUnchanged del componente que se asigna a la propiedad disabled de la tag.
Para enlazar los eventos usamos la siguiente sintaxis: (event)=“statement”
Para enlazar una propiedad en two-way (es decir que cuando se cambie que también cambie el objeto Angular cuando cambie el valor en el HTML): [(target)] = “expression”
Cambiar propiedades:
<img [src] = "heroImageUrl">
<hero-detail [hero]="currentHero"></hero-detail>
<div [ngClass] = "{selected: isSelected}"></div>
Cambiar eventos:
<button (click) = "onSave()">Save</button> <hero-detail (deleteRequest)="deleteHero()"></hero-detail> <div (myClick)="clicked=$event">click me</div>
Cambiar evento y propiedad:
<input [(ngModel)]="heroName">
Cambiar un atributo:
<button [attr.aria-label]="help">help</button>
Cambiar la clase:
<div [class.special]="isSpecial">Special</div>
Cambiar el estilo:
<button [style.color] = "isSpecial ? 'red' : 'green'">
Para editar el target más común usamos ngClass:
<div [ngClass]="classes">[ngClass] binding to the classes property</div>
Technically, Angular is matching the name to a directive input, one of the property names listed in the directive’s inputs array or a property decorated with @Input(). Such inputs map to the directive’s own properties.
La propiedad hero de HeroDetail espera un objeto del tipo Hero (los brackets indican a Angular que evalue la expresión, sino sería tomado como un string):
<hero-detail [hero]="currentHero"></hero-detail>