Вот пример. Скажем, я хочу, чтобы изображение накладывалось подобно множеству сайтов. Поэтому, когда вы нажимаете миниатюру, над вашим окном появляется черная надпись, и в ней сосредоточена большая версия изображения. Щелчок на черном наложении отклоняет его; щелчок по изображению вызовет функцию, отображающую следующее изображение.
html:
<div ng-controller="OverlayCtrl" class="overlay" ng-click="hideOverlay()">
<img src="http://some_src" ng-click="nextImage()"/>
</div>
javascript:
function OverlayCtrl($scope) {
$scope.hideOverlay = function() {
// Some code to hdie the overlay
}
$scope.nextImage = function() {
// Some code to find and display the next image
}
}
Проблема заключается в том, что при этой настройке, если вы щелкните изображение, вызываются как nextImage()
, так и hideOverlay()
. Но я хочу, чтобы вызывался только nextImage()
.
Я знаю, что вы можете захватывать и отменить событие в функции nextImage()
следующим образом:
if (window.event) {
window.event.stopPropagation();
}
... Но я хочу знать, есть ли лучший способ AngularJS сделать это, что не потребует от меня префикса всех функций на элементах внутри наложения с помощью этого фрагмента.