angularjs - angular ui router scroll to an anchor/optional parameter -


  url: '/ blog /: id /: slug? ScrollTo',   

जब scrollTo रिक्त नहीं है, तो मैं स्क्रॉलटॉ वैल्यू पर पृष्ठ स्क्रॉल करना चाहता हूं।

मैंने ऐसा करने की कोशिश की:

  $ scope। $ On ('$ stateChangeSuccess' , फ़ंक्शन (इवेंट, टोस्टेट) {if ($ stateParams.scrollTo) {$ location.hash ($ stateParams.scrollTo); $ एंकर स्क्रॉल ();}});  My-domain? ScrollTo = 53561c675541f30612ee222c # 53561c675541f30612ee222c  

तो इसके साथ क्या गलत है?

^^

UPDATE

html <पूर्व> & lt; body data-ng-controller = "MainCtrl" & gt; & Lt; div id = "content" डेटा-एनजी-नियंत्रक = "दृश्यकूट" वर्ग = "यूआई-व्यू-कंटेनर" & gt; & Lt; ul class = "nav navbar-nav navbar-right" & gt; & Lt; li डेटा-एनबी-संकेतों = "" सिग्नल = "सिग्नल" लेबल = "मैप लेबल्स" मार्ग = "नक्शा मार्ग" वर्ग = "ड्रॉपडाउन संकेत" & gt; & lt; / li & gt; & Lt; / ul & gt; & Lt; div डेटा-यू-दृश्य आटोसक्रोल = "सच" & gt; & lt; / div & gt; & Lt; / div & gt; & Lt; / body & gt;

जेएस

  .controller ('MainCtrl', फ़ंक्शन ($ दायरा, स्थानीय स्टोरेज सेवा, सॉकेट) {/ * सिग्नल सॉकेट .o * / $ scope.signals = []; $ scope.num = 0; सॉकेट.ऑन ('जोड़ा गया पोस्ट', फ़ंक्शन (डेटा) {$ scope.signals.push (डेटा); $ scope.num = $ scope सिग्नल। लैंग;}); सॉकेट.ऑन ('अनुमोदित टिप्पणी', फ़ंक्शन (डेटा) {यदि (स्थानीय स्टॉरेज एसरिवेट.गेट ('कमेंट_आईडी _' + डेटा पोस्ट_आईडी)) {स्थानीय स्टॉरेजसेवायर। ('कमेंट_आईडी_' + डेटा पोस्ट_आईडी); स्थानीय स्टोरेजसेवा .add ('comment_id_reply _' + data.post_id, data.id); $ scope.signals.push (डेटा); $ scope.num = $ scope.signals.length;}}); सॉकेट.ऑन ('उत्तर टिप्पणी', फ़ंक्शन (डेटा) {if (localStorageService.get ('comment_id_reply _' + data.post_id)) {$ scope.signals.push (डेटा); $ scope.num = $ scope.signals.length;}}); $ दायरा MapLabels = {added_post: 'Nuovo articolo', स्वीकृत_ टिप्पणी: 'टिप्पणी करें अनुमोदन', उत्तर दिया गया: टिप्पणी: 'प्रतिकृति टिप्पणी'}; $ scope.mapRoutes = {जोड़ा गया_पस्त: 'ब्लॉग_विवरण ({id: signal.id, slug: signal.slug}) ', स्वीकृत_आकार:' blog_detail s ({id: signal.post_id, slug: signal.post_slug, scrollTo: signal.id}) ', उत्तर-टिप्पणी:' blog_details ({id: signal.post_id, slug: signal.post_slug, scrollTo: signal.id}) ' }; / * $ scope.signals.push ({_ आईडी: '534f9ccb520daa8c167b3431', स्लग: 'सेटिंग-अप-ईमेल-के-मेरे-डोमेन', 'लेबल': 'जोड़े गए_पॉस्ट', शीर्षक: 'आह सीजे बे'}); $ scope.signals.push ({_ आईडी: '534f9ccb520daa8c167b3431', स्लग: 'सेटिंग-अप-ईमेल-के-मेरे-डोमेन', 'लेबल': 'स्वीकृत_कॉममेंट', शीर्षक: 'आह सीजे बे'}); $ scope.signals.push ({_ id: '534f9ccb520daa8c167b3431', स्लग: 'सेटिंग-अप-ईमेल-के-मेरे-डोमेन', 'लेबल': 'उत्तर-टिप्पणी', शीर्षक: 'आह सीजे बेल'}) * * / }) .config (फ़ंक्शन (PREFIX_LOCAL_STORAGE, $ locationProvider, $ urlRouterProvider, localStorageServiceProvider, $ uiViewScrollProvider) {$ urlRouterProvider.otherwise ('/'); $ locationProvider.html5Mode (सत्य) .hashPrefix ('!'); LocalStorageServiceProvider.setPrefix प्राइफिक्स _एलओसीएएलआरएजीआरएजीआर); $ uiViewScrollProvider.useAnchorScroll ();})। डायरेक्टिव ('nbSignals', फ़ंक्शन ($ location, $ stateParams, $ anchorScroll) {return {restrict: 'A', scope: {संकेतों: '=', mapLabels: '= लेबल', नक्शा मार्गः '= मार्ग'}, टेम्पलेट: '& lt; डेटा-टॉगल = "ड्रॉपडाउन" href = "#" & gt;' + '& lt; i वर्ग = "ग्लिफ़िकॉन ग्लाइफिकॉन-इनबॉक्स" & gt; & lt ; / i & gt; & lt; span class = "badge" data-ng-bind = "signals.length" & gt; & lt; / span & gt; '+' & lt; b वर्ग = "कैरेट" & gt; & lt; / b & gt; '+ '& lt; / a & gt;' + '& lt; ul class = "ड्रॉपडाउन-मेनू" & gt;' + '& lt; li डेटा-एनजी-दोहराने = "संकेतों में संकेत" & gt;' + '& lt; एक डेटा-यू- Sref = "{{maproutes [signal.label]}}" डेटा-एनजी-सीएल ick = "markAsRead ($ index)" शीर्षक = "{{signal.label}}" & gt; {{mapLabels [signal.label]}} & lt; / a & gt; '+' & lt; / li & gt; '+' & lt; / ul & gt; ', नियंत्रक: फ़ंक्शन ($ गुंजाइश, $ तत्व) $ $ (' $ stateChangeSuccess ', फ़ंक्शन (ईवेंट, toState) {if ($ stateParams.scrollTo) {$ location.hash ($ stateParams scrollTo); $ AnchorScroll (); }}); $ Scope.markAsRead = फ़ंक्शन (इंडेक्स) {$ scope.signals.splice (सूचकांक, 1); }; $ दायरा। $ Watch ('संकेत', फ़ंक्शन (संकेत) {$ element.css ('दृश्यता', फ़ंक्शन (i, दृश्यता) {वापसी ($ scope.signals.length & gt; 0)? 'दृश्यमान': 'छिपा हुआ '; }); },सच); }}; });   

तो आप एक विचार हो सकता है ....

कोणीय डॉलर एंकर स्कार्लप्राइवर दस्तावेज़ .getElementById (हैश) का प्रयोग कर रहा है, तो तत्व को स्क्रॉल इनटोव्यू () को कॉल करने पर ढूंढने के लिए उपयोग किया जा रहा है, लेकिन यह एसिंक लोड के कारण विफल हो रहा है। यह एक संभावित सुधार हो सकता है:

Comments

Popular posts from this blog

c# - The item with identity 'Id' already exists in the metadata collection. Parameter name: item -

sql - PostgreSQL automatically update row at specific date -

jsp - No mapping found for HTTP request with URI with annotation config Spring MVC and Jetty -