¿Cuál es la forma más fácil de detener la propagación de eventos del mouse en Angular 2? ¿Debo pasar un $event
objeto especial y llamarme a stopPropagation()
mí mismo o hay alguna otra manera? Por ejemplo, en Meteor, simplemente puedo regresar false
del 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.
$event
funciona 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(); }
;event
la función de controladorstopPropogation()
no está disponible. Tuve que hacerlo bien en el marcado: `(click) =" foo (); $ event.stopPropogation () "Llamar
stopPropagation
al evento evita la propagación:Por
preventDefault
solo regresarfalse
fuente
;
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
false
llamadaspreventDefault
nostopPropagation
.preventDefault
se 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
stopPropigation
ypreventDefault
para 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