এখানে একটি উদাহরণ। ধরা যাক আমি অনেকগুলি সাইটের মতো একটি চিত্রের ওভারলে রাখতে চাই। সুতরাং আপনি যখন একটি থাম্বনেইল ক্লিক করেন, তখন আপনার পুরো উইন্ডোয়ের উপরে একটি কালো ওভারলে প্রদর্শিত হয় এবং চিত্রটির বৃহত সংস্করণ এটি কেন্দ্রীভূত হয়। কালো ওভারলে ক্লিক করা এটিকে খারিজ করে দেয়; চিত্রটিতে ক্লিক করা একটি ফাংশন কল করবে যা পরবর্তী চিত্রটি দেখায়।
এইচটিএমএল:
<div ng-controller="OverlayCtrl" class="overlay" ng-click="hideOverlay()">
<img src="http://some_src" ng-click="nextImage()"/>
</div>
জাভাস্ক্রিপ্ট:
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();
}
... তবে আমি জানতে চাই যে এটি করার কোনও আরও ভাল অ্যাঙ্গুলারজেএস উপায় আছে যা আমাকে এই স্নিপেটের সাথে ওভারলেতে থাকা সমস্ত উপাদানগুলির উপসর্গের প্রয়োজন হবে না।
onclick, না ng-click।
return falseফাংশন শেষে