Búsqueda de sitios web

Corchetes y caracteres especiales usados en AngularJS 2 con TypeScript


Ahora estoy aprendiendo AngularJS2 después de AngularJS1. Estoy usando la variante de TypeScript. He encontrado que se usan algunos corchetes y caracteres especiales para los atributos de Angular. ¿Alguien puede ayudarme a entender en profundidad cuál se utiliza por qué razón con un ejemplo adecuado? También, por favor, agreguen cualquier otro carácter especial relacionado con esta pregunta (si me he perdido alguno).

[(ngModel)]

(click)

*ngIf

ngRepeat="#hero in heros"

Etc.

Respuesta #1

[(ngModel)] :

Normalmente usamos esta sintaxis para BINDING BIDIRECCIONAL en Angular2. Es decir, ya sea que hagamos cambios desde la plantilla o desde el controlador, Angular refleja los cambios. Normalmente usamos esta sintaxis si tenemos que hacer cambios en ambos lados, tanto en la plantilla como en el controlador.

(clic):

esto es la vinculación de eventos en Angular2. hay muchas vinculaciones de eventos en Angular2.

*ngIf :

Esta sintaxis es justo como display: none/block en el CSS. Pero es diferente del selector display de CSS, ya que según Angular2, *ngIf no permite renderizar la porción de código que es falsa, es decir, si *ngIf='false' está en cualquier div o cualquier parte del HTML, Angular no permite renderizar esa porción. Mientras que en CSS esa porción ocupa un espacio.

ngRepeat="#hero en heros"

esta es la sintaxis de Angular 1.x pero en Angular 2 ngRepeat se reemplaza con *ngFor. Normalmente usamos *ngFor para iterar sobre un arreglo y obtener todos los elementos del arreglo de la lista para evitar código extra. Aquí *ngFor en Angular 2 se combina con dos variables como aquí...

*ngFor= '#hero of Heros'

Aquí #hero es una variable local y Heros es el nombre del array sobre el cual iteramos un bucle.

Respuesta #2

Además de la respuesta de @PardeepJain.

<my-comp [(someName)]="someExpression">

es la forma corta de

<my-comp [someName]="someExpression" (someNameChange)="someExpression=$event">

donde en MyComp tiene que haber un input y un output como

@Component({
  selector: 'my-comp',
  inputs: ['someName'],
  outputs: ['someNameChange']})
class MyComp {
  someName:SomeType;
  someNameChange:EventEmitter = new EventEmitter();
}

o alternativamente como

@Component({
  selector: 'my-comp'
})
class MyComp {
  @Input() someName:SomeType;
  @Output() someNameChange:EventEmitter = new EventEmitter();
}
  • Entrada: ver https://angular.io/docs/ts/latest/api/core/Input-var.html
  • Salida: ver https://angular.io/docs/ts/latest/api/core/Output-var.html

Esto funciona igual para las directivas.