¿Cuál es la forma más fácil de detener la propagación de eventos del mouse en Angular 2? ¿Debo pasar un $eventobjeto especial y llamarme a stopPropagation()mí mismo o hay alguna otra manera? Por ejemplo, en Meteor, simplemente puedo regresar falsedel controlador de eventos.
angular
dom-events
event-propagation
Movimiento rápido del ojo
fuente
fuente

@HostListener("mousedown", ["$event"]) public onMousedown(event: any): void { event.stopPropagation(); }Lo más simple es llamar a detener la propagación en un controlador de eventos.
$eventfunciona igual en Angular 2, y contiene el evento en curso (mediante un clic del mouse, evento del mouse, etc.):en el controlador de eventos, podemos detener la propagación:
fuente
<button confirmMessage="are you sure?" (click)="delete()">Delete</button>, y en mi directiva:(click)="confirmAction($event)entoncesconfirmAction(event) { event.stopPropagation(); };eventla función de controladorstopPropogation()no está disponible. Tuve que hacerlo bien en el marcado: `(click) =" foo (); $ event.stopPropogation () "Llamar
stopPropagational evento evita la propagación:Por
preventDefaultsolo regresarfalsefuente
;embargo , no tienen el final. Voy a cambiar esofalse<3Agregando a la respuesta de @AndroidUniversity. En una sola línea puedes escribirlo así:
fuente
Si está en un método vinculado a un evento, simplemente devuelva falso:
fuente
falsellamadaspreventDefaultnostopPropagation.preventDefaultse llama. github.com/angular/angular/blob/… , github.com/angular/angular/blob/…Esto funcionó para mí:
mycomponent.component.ts:
mycomponent.component.html:
fuente
Tenía que hacerlo
stopPropigationypreventDefaultpara evitar que un botón expandiera un elemento de acordeón sobre el que se encontraba.Entonces...
fuente
Nada funcionó para IE (Internet Explorer). Mis probadores pudieron romper mi modal haciendo clic en la ventana emergente en los botones detrás de él. Entonces, escuché un clic en mi div de pantalla modal y forcé a reenfocar un botón emergente.
fuente
solía
en resumen, separe otras cosas / llamadas a funciones con ';' y agregue $ event.stopPropagation ()
fuente
Acabo de registrar una aplicación Angular 6, event.stopPropagation () funciona en un controlador de eventos sin siquiera pasar $ event
fuente
Deshabilitar enlace href con JavaScript
Cómo debería funcionar también en TypeScript con Angular (Mi versión: 4.1.2)
Modelo Mecanografiadofuente
Agregar falso después de la función detendrá la propagación de eventos
fuente
Esto resolvió mi problema, evitando que un evento sea disparado por un niño:
fuente
Prueba esta directiva
Uso
fuente