Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Вложенный ng-click (https://javascript.ru/forum/angular/44335-vlozhennyjj-ng-click.html)

Shasoft 16.01.2014 09:49

Вложенный ng-click
 
Такой код
<div ng-click="f1()">бал-бла-бла<span ng-click="f2()">ткни в меня</span></div>
При нажатии на span вызывается и f2() И f1(). Как можно при нажатии на span отменить вызов функции f1()?

dolpheen 16.01.2014 11:45

Вариант 1.
$event.stopPropagation() - отмена "продвижения" события дальше по цепочке.
В выражении (или вставить в обработчик события)
<span ng-click="f2();$event.stopPropagation()">


Вариант 2.
Контроль в обработчике элемента назначения клика
<div ng-click="f1($event)">бал-бла-бла ...

$scope.f1 = function (event){
             if(event.target === event.currentTarget){
                 console.log('Do something...')
             }
         };


http://plnkr.co/edit/iZZtUFlnR85iKfE6RzFE?p=preview

Shasoft 16.01.2014 12:43

Спасибо. Про $event нашел, но не смог понять, куда его вставить.


Часовой пояс GMT +3, время: 21:27.