====== Angular Specifics ======
===== Templates =====
Podemos ampliar el HTML de nuestra página:
The sum of 1 + 1 is {{1 + 1}} The sum of 1 + 1 is not {{1 + 1 + getVal()}} "{{title}}" is the interpolated title. "" is the property bound title.
También evaluar expresiones:
{{title}}
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 ''
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:
Cambiar eventos:
Cambiar evento y propiedad:
Cambiar un atributo:
Cambiar la clase:
Cambiar el estilo:
Para editar el target más común usamos ''ngClass'':
//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):
Los siguientes pares hacen la misma acción:
When developing data entry forms, we often want to both display a data property and update that property when the user makes changes.
Cuando tratamos con datos introducidos por el usuario querremos que lo que se muestra y lo que se almacena coincida, esto lo permite el ''[(ngModel)]'':
is the interpolated image.
is the property bound image.
==== Clausulas ====
Hay clausulas ( :!: precedidas por ''*'') que permiten el render de la vista en bucle o condicional:
El * para ''ngFor'' indica que el elemento
{{hero.fullName}}
{{i + 1}} - {{hero.fullName}}
=== ngForTrackBy ===
=== ngIf ===
=== ngSwitch ===