इस प्रश्न के लिए यहाँ बहुत सारे उत्तर हैं लेकिन ऐसा लगता है कि वास्तव में यहाँ क्या हो रहा है, इसे लेकर थोड़ा भ्रम है।
सबसे पहले, आपका आधार
"href ने Angular.js में एनजी-क्लिक को ओवरराइड किया"
गलत है। वास्तव में क्या हो रहा है कि आपके क्लिक के बाद, क्लिक इवेंट को पहले कोणीय ( ng-click
कोणीय 1.x और click
कोणीय 2.x + में निर्देश द्वारा परिभाषित) द्वारा संभाला जाता है और फिर यह प्रचारित करना जारी रखता है (जो अंततः ब्राउज़र को नेविगेट करने के लिए ट्रिगर करता है। url को href
विशेषता से परिभाषित किया गया है) ( इसे जावास्क्रिप्ट में ईवेंट प्रचार के बारे में अधिक देखें )
यदि आप इससे बचना चाहते हैं, तो आपको ईवेंट इंटरफ़ेस की preventDefault()
विधि का उपयोग करके इवेंट प्रचार रद्द करना चाहिए :
<a href="#" ng-click="$event.preventDefault();logout()" />
(यह शुद्ध जावास्क्रिप्ट कार्यक्षमता है और कोणीय से कोई लेना देना नहीं है)
अब, यह आपकी समस्या को पहले ही हल कर देगा लेकिन यह इष्टतम समाधान नहीं है। कोणीय, सही, MVC पैटर्न को बढ़ावा देता है । इस समाधान के साथ, आपका html टेम्पलेट जावास्क्रिप्ट लॉजिक के साथ मिलाया गया है। आपको यथासंभव इससे बचने की कोशिश करनी चाहिए और अपने तर्क को अपने कोणीय नियंत्रक में रखना चाहिए। तो एक बेहतर तरीका होगा
<a href="#" ng-click="logout($event)" />
और आपके लॉगआउट () विधि में:
logout($event) {
$event.preventDefault();
...
}
अब क्लिक ईवेंट ब्राउज़र तक नहीं पहुंचेगा, इसलिए यह इंगित की गई लिंक को लोड करने का प्रयास नहीं करेगा href
। (हालांकि ध्यान दें कि यदि उपयोगकर्ता लिंक पर राइट क्लिक करता है और सीधे लिंक को खोलता है, तो बिल्कुल भी एक क्लिक इवेंट नहीं होगा। इसके बजाय यह सीधे href
विशेषता द्वारा बताए गए url को लोड करेगा ।)
ब्राउज़रों में लिंक किए गए रंग के बारे में टिप्पणियों के बारे में। फिर से इसे कोणीय से कोई लेना-देना नहीं है, अगर आपके href="..."
अंक आपके ब्राउज़र द्वारा डिफ़ॉल्ट रूप से लिंक किए गए यूआरएल से लिंक किए गए रंग अलग होंगे। इसे CSS द्वारा नियंत्रित किया जाता है : चयनकर्ता का दौरा किया , आप इस व्यवहार को ओवरराइड करने के लिए अपनी सीएसएस को संशोधित कर सकते हैं:
a {
color:pink;
}
PS1 :
कुछ उत्तर का उपयोग करने का सुझाव देते हैं:
<a href .../>
href
एक कोणीय निर्देश है। जब आपका टेम्प्लेट कोणीय द्वारा संसाधित किया जाता है तो इसे परिवर्तित कर दिया जाएगा
<a href="" .../>
वे दो रास्ते अनिवार्य रूप से एक ही हैं।