Angular.js: कोणीय को पृष्ठ पर किसी विशिष्ट तत्व को स्क्रॉल करने का एक तरीका प्रदान करना चाहिए

को निर्मित 1 नव॰ 2010  ·  10टिप्पणियाँ  ·  स्रोत: angular/angular.js

फ्रैगमेंट आइडेंटिफ़ायर (हैश) आमतौर पर एक लंबे पृष्ठ में विशिष्ट स्थानों से लिंक करने के लिए उपयोग किया जाता है। यह कोणीय के साथ काम नहीं करता है क्योंकि मार्ग को लागू करने के लिए हैश का उपयोग किया जा रहा है। पृष्ठ को किसी विशिष्ट तत्व तक स्क्रॉल करने का एक तरीका प्रदान किया जाना चाहिए।

feature

सभी 10 टिप्पणियाँ

हां, और फिर, हमें इसे $ स्थान के साथ उपयोग करना चाहिए - अब के रूप में, हम हैश का भी समर्थन करते हैं, इसलिए जब भी $ स्थान। हैश () बदलता है, तो हमें इसे स्क्रॉल करना चाहिए ...

यह पहले से ही लागू था। यदि $ स्थान html5 मोड में संचालित होता है तो बस href="#anchor" लिंक बनाएं

उस पर टकराने के लिए क्षमा करें, लेकिन क्या होगा यदि हम html5 मोड में नहीं हैं? संदर्भों के लिए यह दो फिडेल देखें:
http://jsfiddle.net/gabrielstuff/SdGnR/ जो राउटर का उपयोग करते हैं और एंकर लिंकिंग को तोड़ते हैं।
और ये वाला
http://jsfiddle.net/gabrielstuff/nYxFg/ जो किसी भी राउटर का उपयोग नहीं कर रहा है और सही ढंग से उसी पृष्ठ पर कूदने की अनुमति देता है।

इसके अलावा HTML5 के साथ प्रयास करने से बहुत मदद नहीं मिली (लेकिन यह एक अन्य टिकट है)

मेरी भी यही समस्या है। मैं html5 मोड में नहीं हूं। यह हैशबैंग मोड में कैसे काम करेगा?

मैं मानता हूं कि यह व्यवहार बहुत अप्रत्याशित है। यहां तक ​​​​कि अगर कोई HTML5 मोड का उपयोग नहीं कर रहा है, तो एंकर के साथ हैश का उपयोग करते समय कोणीय को इस अपेक्षित व्यवहार को नहीं तोड़ना चाहिए।

जैसा कि मैं इसे समझता हूं, कोणीय को किसी भी तरह से स्पष्ट हैश वाले किसी भी लिंक को अनदेखा करना चाहिए। यदि हम HTML5 का उपयोग नहीं कर रहे हैं तो लिंक <a href="/something"... अपने आप /#/something रूप में फिर से लिखा जाएगा (जब तक कि मैं _self लक्षित नहीं करता)। तो <a href="#something" यकीनन हमेशा /#something जाना चाहिए

+1

मुझे लगता है कि ऐसा करने के लिए आपको एंकरस्क्रॉल का उपयोग करना चाहिए।

बस जिज्ञासु @IgorMinar क्या हमें इस पर कोई टिप्पणी मिल सकती है कि क्या यह समस्या ठीक होने वाली है या नहीं? कोई तर्क दे सकता है कि पुराने ब्राउज़रों के पूरी तरह से समर्थित नहीं होने के आधार पर इसकी आवश्यकता नहीं है, लेकिन मुझे लगता है कि एंकर लिंक को उन ब्राउज़रों के साथ काम करना चाहिए या नहीं, जो इतिहास एपीआई का समर्थन नहीं करते हैं।

हालांकि मुझे समस्या आती है, अगर मैं #/route1 पर हूं तो #/route1#anchor पर होना मुश्किल है। यहां उल्लिखित हैक (http://www.benlesh.com/2013/02/angular-js-scrolling-to-element-by-id.html) ठीक लगता है, लेकिन यह आदर्श होगा यदि यह "बस काम किया"। वैसे भी यदि $anchorScroll हैक समाधान है तो यह कहना अच्छा हो सकता है और शायद कोई व्यक्ति दस्तावेज़ीकरण को अद्यतन कर सकता है यह दर्शाने के लिए कि पुराने ब्राउज़रों के लिए इस समस्या को कैसे हल किया जाना चाहिए।

यहां ( http://stackoverflow.com/a/15935517/2071612 ) एक शानदार समाधान है।

BTW, मैंने $location.hash() स्वतंत्र रूप से स्क्रॉल करने के लिए समर्थन जोड़ने के लिए एक PR (#9596) सबमिट किया है।

क्या यह पृष्ठ उपयोगी था?
0 / 5 - 0 रेटिंग्स