Angular 2-Lista de eventos


Soy novato en Angular 2. ¿Cuáles son los eventos correspondientes de AngularJS a Angular 2? por ejemplo: ng-click a (clic)

¿ng-init y todos los demás eventos? No tengo intellisense en VS. NET, así que es difícil de adivinar.

Cualquier ayuda por favor!

Gracias

Author: Pete, 2016-01-21

5 answers

Los eventos manejados por defecto deben ser mapeados desde los eventos del componente HTML DOM original:

Http://www.w3schools.com/jsref/dom_obj_event.asp

Simplemente eliminando el prefijo on.

onclick ---> (click)

onkeypress ---> (keypress)

Etc...

También puede crear sus eventos personalizados.

Sin embargo ngInit no es un evento HTML, esto es parte del ciclo de vida de los componentes de Angular, y en Angular 2 se manejan usando "hooks", que son básicamente nombres de métodos específicos dentro de su componente que se llamarán cada vez que el componente ingrese al ciclo específico. Como:

NgOnInit

NgOnDestroy

Etc...

 54
Author: Langley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-21 16:51:14

Esta es una de las grandes ventajas de Angular2. Ya no todos los eventos necesitan una directiva ng-xxx personalizada.
Con elementos personalizados y todas las demás bibliotecas que producen todo tipo de eventos personalizados, este enfoque no funciona.

En Angular2 la sintaxis de enlace (eventName)="expression" permite suscribirse a cualquier evento conocido y desconocido.

La variable $event todavía está disponible (eventName)="myEventHandler($event)"

Véase también https://angular.io/docs/ts/latest/guide/template-syntax.html#! # event-binding

 5
Author: Günter Zöchbauer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-13 16:30:00

Aquí está la lista de eventos en Angular Por favor, consulte la documentación si es necesario para obtener más información

(focus)="myMethod()"
(blur)="myMethod()" 
(submit)="myMethod()"  
(scroll)="myMethod()"

(cut)="myMethod()"
(copy)="myMethod()"
(paste)="myMethod()"

(keydown)="myMethod()"
(keypress)="myMethod()"
(keyup)="myMethod()"

(mouseenter)="myMethod()"
(mousedown)="myMethod()"
(mouseup)="myMethod()"

(click)="myMethod()"
(dblclick)="myMethod()"

(drag)="myMethod()"
(dragover)="myMethod()"
(drop)="myMethod()"
 3
Author: Alok Panday,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-22 19:29:49

Puede usar la siguiente sintaxis para manejar eventos (por ejemplo click como ng-click con Angular1):

<button (click)="callSomeMethodOfTheComponent()">Click</button>

La diferencia aquí es que esto es más genérico. Quiero decir que puedes usar eventos DOM directamente, pero también los personalizados definidos usando la clase EventEmitter.

Aquí hay un ejemplo que describe cómo manejar un evento click y un evento personalizado (my-event) activado por un subcomponente:

@Component({
  selector: 'my-selector',
  template: `
    <div>
      <button (click)="callSomeMethodOfTheComponent()">Click</button>
      <sub-component (my-event)="callSomeMethodOfTheComponent()"></sub-component>
    </div>
  `,
  directives: [SubComponent]
})
export class MyComponent {
  callSomeMethodOfTheComponent() {
    console.log('callSomeMethodOfTheComponent called');
  }
}

@Component({
  selector: 'sub-component',
  template: `
    <div>
      <button (click)="myEvent.emit()">Click (from sub component)</button>
    </div>
  `
})
export class SubComponent {
  @Output()
  myEvent: EventEmitter;

  constructor() {
    this.myEvent = new EventEmitter();
  }
}

Espero que te ayude, Thierry

 1
Author: Thierry Templier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-21 16:15:31

Un gran lugar para empezar a entender Angular 2 es la página web oficial.

Aquí se puede ver todo el angular2 / común ng-XXX aunque ahora es como sigue ngXxxx

introduzca la descripción de la imagen aquí

En mi caso la mejor manera de entender las diferencias entre Angular 1 y Angular 2 fue haciendo los tutoriales:

 1
Author: Jorge Casariego,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-21 16:42:29