এই প্রশ্নের এখানে অনেক উত্তর রয়েছে তবে মনে হচ্ছে এখানে আসলে কী চলছে তা নিয়ে কিছুটা বিভ্রান্তি রয়েছে।
প্রথমত, আপনার ভিত্তি
"href Angular.js এ এনজি-ক্লিককে ওভাররাইড করে"
ভূল. আসলে যা ঘটছে তা হ'ল আপনার ক্লিকের পরে ক্লিক ইভেন্টটি প্রথমে কৌণিক দ্বারা পরিচালনা করা হয় ( ng-click
কৌণিক 1.x এবং click
কৌণিক 2.x + তে নির্দেশ দ্বারা সংজ্ঞায়িত ) এবং তারপরে এটি প্রচার অব্যাহত রাখে (যা শেষ পর্যন্ত ব্রাউজারটিকে নেভিগেট করতে চালিত করে url সহ সংজ্ঞায়িত href
অ্যাট্রিবিউট)। (দেখুন এই জাভাস্ক্রিপ্ট ইভেন্ট প্রসারণ সম্পর্কে আরো জন্য)
আপনি যদি এড়াতে চান, তবে ইভেন্ট ইভেন্ট ইন্টারফেসের preventDefault()
পদ্ধতিটি ব্যবহার করে আপনার ইভেন্টের প্রচার বাতিল করা উচিত :
<a href="#" ng-click="$event.preventDefault();logout()" />
(এটি খাঁটি জাভাস্ক্রিপ্ট কার্যকারিতা এবং কৌনিকের সাথে কিছুই করার নয়)
এখন, এটি ইতিমধ্যে আপনার সমস্যার সমাধান করবে তবে এটি অনুকূল সমাধান নয়। কৌণিক, যথাযথভাবে, এমভিসি প্যাটার্ন প্রচার করে । এই সমাধানের সাথে, আপনার এইচটিএমএল টেমপ্লেটটি জাভাস্ক্রিপ্ট যুক্তির সাথে মেশানো হয়েছে। আপনার এটিকে যথাসম্ভব এড়াতে চেষ্টা করা উচিত এবং আপনার যুক্তিটি আপনার কৌনিক নিয়ামকের মধ্যে রাখা উচিত। সুতরাং একটি ভাল উপায় হতে পারে
<a href="#" ng-click="logout($event)" />
এবং আপনার লগআউট পদ্ধতিতে:
logout($event) {
$event.preventDefault();
...
}
এখন ক্লিক ইভেন্টটি ব্রাউজারে পৌঁছাবে না, সুতরাং এটি দ্বারা নির্দেশিত লিঙ্কটি লোড করার চেষ্টা করবে না href
। (তবে মনে রাখবেন যে ব্যবহারকারী যদি লিঙ্কটিতে ডান ক্লিক করে এবং সরাসরি লিঙ্কটি খোলে, তবে কোনও ক্লিক ইভেন্ট হবে না Instead পরিবর্তে এটি সরাসরি href
বৈশিষ্ট্যের দ্বারা নির্দেশিত ইউআরএলটি লোড করবে ))
ব্রাউজারগুলিতে পরিদর্শন করা লিঙ্ক রঙ সম্পর্কে মন্তব্য সম্পর্কে। আবার কৌণিকের সাথে এটির কোনও সম্পর্ক নেই, যদি href="..."
আপনার ব্রাউজার দ্বারা ডিফল্টরূপে আপনার ব্রাউজারের দ্বারা দেখা একটি ইউআরএলগুলিতে পয়েন্ট থাকে তবে লিঙ্কের রঙটি আলাদা হবে। এটি সিএসএস দ্বারা নিয়ন্ত্রিত হয় : পরিদর্শক নির্বাচিত , আপনি এই আচরণটি ওভাররাইড করতে আপনার সিএসএস পরিবর্তন করতে পারেন:
a {
color:pink;
}
পিএস 1 :
কিছু উত্তর ব্যবহার করার পরামর্শ দেয়:
<a href .../>
href
একটি কৌনিক নির্দেশ। যখন আপনার টেম্পলেটটি কৌণিক দ্বারা প্রক্রিয়া করা হয় তখন এটি রূপান্তরিত হবে
<a href="" .../>
এই দুটি উপায় মূলত একই।