के अंदर काम नहीं कर रहा है मैं एक कोणीय जेएस निर्देश के भीतर से $location.path
अद्यतन करने की कोशिश कर रहा हूं। यह काम नहीं कर रहा है जैसा कि मैं उम्मीद करता हूं, ब्राउज़र ब्राउज़र में प्रदर्शित यूआरएल को अपडेट करना और मेरे पेज पर अलग-अलग सामग्री दिखाना है। कंसोल में देखे गए अनुसार, मेरे कार्यों को निश्चित रूप से सही मानों के साथ बुलाया जा रहा है। मुझे लगता है कि $location.path
का कुछ प्रभाव हो सकता है, क्योंकि जब मैं लिंक पर क्लिक करता हूं, तो कुछ अतिरिक्त कार्यों को बुलाया जाता है जिसे नए पेज पर बुलाया जाएगा, केवल नया पृष्ठ कभी प्रदर्शित नहीं होता है। जब मैं नियंत्रक के भीतर $location.path
का उपयोग करता हूं, तो यह अपेक्षा के अनुसार काम करता है, लेकिन मेरे निर्देश में नहीं।
<div detail-link="/comments?post={{post.postId}}" ng-click="clickDetailLink()"></div>
यहाँ के निर्देश की परिभाषा (CoffeeScript में) है::
directives.directive 'detailLink', ['$location', ($location) ->
return (scope, element, attrs) ->
scope.clickDetailLink = ->
console.log "loading " + scope.detailLinkHref
$location.path scope.detailLinkHref
attrs.$observe 'detailLink', (value) ->
console.log "set detail link to " + value
scope.detailLinkHref = value
]
मैं एक सुराग क्या यहाँ हो रहा है ... मेरी $routeProvider
की स्थापना की है है
यहाँ मेरी निर्देश के लिए HTML है /comments
को संभालने के लिए, लेकिन यहां मैं मार्ग पर एक क्वेरी स्ट्रिंग जोड़ने की कोशिश कर रहा हूं। यदि मैं नियमित <a href="#/comments?post={{post.postId}}">
का उपयोग करता हूं, तो यह ठीक काम करता है, लेकिन किसी भी तरह से $location.path
के माध्यम से एक ही मार्ग को सेट करना काम नहीं कर रहा है। यह इस बात पर ध्यान दिए बिना कि यह कोड नियंत्रक या निर्देश में है या नहीं।
हम्म, हाँ। यह उस समस्या को हल करता है, लेकिन यह अभी भी असली मुद्दे को हल नहीं करता है। अब मेरे पास पहले से ही प्रगति पर '$ लागू है '। इसे '$ टाइमआउट' में लपेटकर "पहले से ही प्रगति" बिट को ठीक करता है लेकिन अभी भी पथ को अपडेट नहीं करता है। मैं अपना प्रश्न संपादित करूंगा .. धन्यवाद! – jab
आप $ लॉग में भी देखना चाहते हैं। –
आपको यह सब अपने नियंत्रक में करने में सक्षम होना चाहिए। –