दिलचस्प पोस्ट
क्या ब्राउज़र की चौड़ाई पर आधारित पाठ आकार गतिशील रूप से संभव है? जावास्क्रिप्ट में फ़ंक्शन का नाम प्राप्त करें एंड्रॉइड में दृश्य दृश्यमान है या नहीं, मैं कैसे जांच सकता हूं? `स्ट्रिंग 'बहुत अधिक प्रकार तर्कों पर लागू होता है जावास्क्रिप्ट के द्वारा सीएसएस छद्म-तत्व शैलियों को बदलना जेपीए (और इसी तरह की टेबल पंक्तियों में शामिल) में कई संबंध के साथ इकाई को कैसे निकालना है? वॉली के साथ एंड्रॉइड में "मल्टीपार्ट / फॉर्म-डेटा" पोस्ट कैसे भेजें दो डेटा फ्रेम को पंक्तियों (आरबीआईएन) से जोड़ते हैं, जब उनके पास अलग-अलग कॉलम हैं कैसे कमांड लाइन से एक्सएमएल प्रिंट करने के लिए? मेरे ऐप को एक उपकरण स्वामी कैसे बनाऊं? अंगुलुज जैस्मीन यूनिट टेस्ट में वादा करने वाली एक सेवा का मैं कैसे मजाक कर सकता हूं? सी ++ 11 में टाइपिंगफ 'और' प्रयोग 'के बीच क्या फर्क है? स्पार्क एसक्यूएल के डाटाफ्रेम में कॉलम के प्रकारों को कैसे बदला जाए? एंड्रॉइड सपोर्ट लाइब्रेरी अपडेट करें 23.2.0 कारण त्रुटि: XmlPullParserException बाइनरी XML फ़ाइल लाइन # 17 <वेक्टर> टैग की आवश्यकता है viewportWidth> 0 पहचान मूल्य प्राप्त करने के लिए मैं INSERT स्टेटमेंट के आउटपुट क्लॉज का उपयोग कैसे करूं?

angular.js लिंक व्यवहार – विशिष्ट URL के लिए गहरी लिंक को अक्षम करें

मेरे पास एचटीएमएल 5 मोड सक्षम होने के साथ काम करना है Angular.js app

$location.Html5mode(true).hashbang("!"); 

मैं क्या हासिल करना चाहता हूं, कुछ यूआरएल या <a> टैग एचटीएमएल इतिहास एपीआई का इस्तेमाल करते हुए एड्रेस बार में यूआरएल को बदलने और एंजीर कंट्रोलर्स का इस्तेमाल करने से निपटने के बजाय सामान्य ब्राउज़िंग व्यवहार करना है।

मेरे पास यह लिंक है:

 <a href='/auth/facebook'>Sign in with Facebook</a> <a href='/auth/twitter'>Sign in with Twitter</a> <a href='/auth/...'>Sign in with ...</a> 

और मैं ब्राउज़र को उपयोगकर्ता को /auth/... पर रीडायरेक्ट करना चाहता हूं ताकि उपयोगकर्ता को एक प्रमाणीकरण सेवा पर पुनः निर्देशित किया जाएगा।

क्या कोई और तरीका है इसे करने के लिए?

वेब के समाधान से एकत्रित समाधान "angular.js लिंक व्यवहार – विशिष्ट URL के लिए गहरी लिंक को अक्षम करें"

target="_self" जोड़ना कायर 1.0.1 में काम करता है:

 <a target="_self" href='/auth/facebook'>Sign in with Facebook</a> 

यह सुविधा दस्तावेज है ( https://docs.angularjs.org/guide/$location – '_self' के लिए खोज)

यदि आप उत्सुक हैं, तो कोण स्रोत (लाइन 5365 @ v1.0.1) को देखें। क्लिक अपहरण केवल तब होता है जब !elm.attr('target') सच है

FranLco की विधि का विकल्प $ locationProvider में 'पुनर्लेखन लिंक' विकल्प को अक्षम करना है:

 $locationProvider.html5Mode({ enabled: true, rewriteLinks: false }); 

यह $ rootElement.off ('click') को कॉल करने के रूप में ठीक उसी चीज़ को पूरा करेगा, लेकिन अन्य एपिसोड के साथ हस्तक्षेप नहीं करेगा जो आपके ऐप के मूल तत्व पर क्लिक ईवेंट को संभालता है।

डॉक्स और प्रासंगिक स्रोत देखें

यह एक साथ सभी को गहराई से जोड़ने के लिए कोड है। यह रूट इलेट से क्लिक ईवेंट हैंडलर को अक्षम करता है

 angular.module('myApp', []) .run(['$location', '$rootElement', function ($location, $rootElement) { $rootElement.off('click'); }]); 

मैंने एक ही मुद्दे पर कई बार कोणीय के साथ चलाया है, और जब मैं दो कार्यात्मक समाधानों के साथ आया हूं, दोनों हीक्स की तरह महसूस करते हैं और बहुत ही "कोणीय" नहीं।

हैक # 1:

लिंक के click ईवेंट पर window.location

 <a href=/external/link.html onclick="window.location = 'http://example.com/external/link.html';" > 

इस दृष्टिकोण के नकारात्मक पक्ष और समस्याएं काफी स्पष्ट हैं।

हैक # 2

कोणीय $route सेट करें जो कि $window.location परिवर्तन करते हैं।

 // Route .when('/external', { templateUrl: 'path/to/dummy/template', controller: 'external' }) // Controller .controller('external', ['$window', function ($window) { $window.location = 'http://www.google.com'; }]) 

मैं सोचता हूं कि आप इस का विस्तार कर सकते हैं $routeParams या क्वेरी स्ट्रिंग का उपयोग करने के लिए एक नियंत्रक सभी "बाहरी" लिंक को संभालता है

जैसा कि मैंने कहा, इन समाधानों में से कोई भी बहुत ही संतोषजनक नहीं है, लेकिन यदि आपको अल्पावधि में यह काम करना है, तो वे मदद कर सकते हैं

एक तरफ ध्यान दें, मैं वास्तव में इस प्रकार की कार्यक्षमता के लिए कोणीय समर्थन rel=external देखना चाहूंगा, जैसे कि jQueryMobile का उपयोग अजाक्स पेज लोडिंग को अक्षम करने के लिए करता है।

निक के उत्तर को बंद करने के लिए, यदि आपके पास बहुत से लिंक हैं और उनमें से हर एक को लक्ष्य नहीं जोड़ना चाहते हैं, तो आप निर्देश का उपयोग कर सकते हैं:

 Module.directive('a', function () { return { restrict: 'E', link: function(scope, element, attrs) { element.attr("target", "_self"); } }; }); 

Dragonfly के उत्तर में जोड़ने के लिए, मुझे लक्ष्य = "_ स्व" विशेषताओं की संख्या को सीमित करने के लिए सबसे अच्छा अभ्यास पाया गया है कि शरीर टैग पर एनजी-एप विशेषता कभी नहीं डालनी चाहिए। ऐसा करने से आप कोणीय कह रहे हैं कि शरीर टैग के भीतर की सभी चीज़ को कोणीय ऐप का हिस्सा हैं।

यदि आप एक स्थैतिक आवरण के भीतर काम कर रहे हैं जिसे कोणीय से प्रभावित नहीं किया जाना चाहिए, तो अपने एनजी-एप विशेषता को एक डिव (या अन्य तत्व) पर रखें जो केवल आपके ऐन्यूलियल ऐप के साथ काम करने वाला स्थान है। इस तरह आप केवल को लिंक पर लक्ष्य = '_ आत्म' विशेषता डालना होगा जो एनजी-एप तत्व के बच्चों होंगे।

 <body> ... top markup ... <div ng-app="myApp"> <div ng-view></div> </div> ... bottom markup ... </body> 

आपके मार्गों में प्रयास करें:

$routeProvider.otherwise({})