Saltar al contenido

AngularJS ng-click stopPropagation

Esta duda se puede resolver de diversas maneras, sin embargo te mostramos la respuesta más completa para nosotros.

Solución:

La directiva ngClick (así como todas las demás directivas de eventos) crea $event variable que está disponible en el mismo alcance. Esta variable es una referencia a JS event objeto y se puede utilizar para llamar stopPropagation():

user.firstname user.lastname

PLUNKER

Una adición a la respuesta de Stewie. En caso de que su devolución de llamada decida si la propagación debe detenerse o no, me resultó útil pasar el $event objetar a la devolución de llamada:

Y luego, en la devolución de llamada, puede decidir si la propagación del evento debe detenerse:

$scope.childHandler = function ($event) 
  if (wanna_stop_it()) 
    $event.stopPropagation();
  
  ...
;

Escribí una directiva que te permite limitar las áreas donde un clic tiene efecto. Podría usarse para ciertos escenarios como este, por lo que en lugar de tener que lidiar con el clic caso por caso, puede simplemente decir “los clics no saldrán de este elemento”.

Lo usarías así:

user.firstname user.lastname

Tenga en cuenta que esto evitaría todos los clics en la última celda, no solo en el botón. Si eso no es lo que desea, puede ajustar el botón de esta manera:


    

Aquí está el código de la directiva:

angular.module('awesome', []).directive('isolateClick', function() 
    return 
        link: function(scope, elem) 
            elem.on('click', function(e)
                e.stopPropagation();
            );
        
   ;
);

Te mostramos comentarios y puntuaciones

Si entiendes que te ha resultado de ayuda este artículo, te agradeceríamos que lo compartas con el resto programadores y nos ayudes a difundir nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *