दिलचस्प पोस्ट
API V3 के साथ प्रति पृष्ठ कई Google मानचित्र कैसे प्रदर्शित करें MVC- जैसे पृष्ठ पर सुंदर यूआरएल पर आधारित वर्गों को लोड कैसे करें? Xamarin में एक स्थानीय डेटाबेस का उपयोग करें रीसाइक्लरव्यू पर चुने हुए आइटम को ठीक से कैसे उजागर करना है? प्रक्रिया से बाइनरी आउटपुट को कैप्चर करना। मानकऑप्टपुट खिड़कियों के रूपों में स्पलैश स्क्रीन को कैसे बनाया जाए? C ++ में लूप में अलग-अलग यादृच्छिक संख्या कैसे उत्पन्न करें? Rails has_many: के माध्यम से खोजें विशेष गुणों में शामिल हों मॉडल में शामिल हों PHP में दोषपूर्ण यूटएफ -8 स्ट्रिंग का पता कैसे लगा सकता है? एंड्रॉइड अलार्म सेवा के तत्काल ट्रिगर को रोकने के लिए अगर दिन के लिए अलार्म का समय बीत चुका है किसी पाठ फ़ाइल में पंक्तियों की संख्या निर्धारित करें एंड्रॉइड मैपदृश्य -सेटिंग स्वचालित रूप से जब तक कि सभी मदनामयुक्त ओवरले दृश्यमान नहीं हो जाते JTable getrelectedRow चयनित पंक्ति अनुक्रमणिका वापस नहीं करता है NSMutableDictionary धागा सुरक्षा सीएसवी मॉड्यूल के साथ सीएसवी फ़ाइल से विशिष्ट कॉलम पढ़ें?

कोनेरी $ location.path काम नहीं कर रहा है

मेरे पास इस प्रश्न के समान एक सवाल है, लेकिन अलग है।

यहां मैं window.postMessage लिए एक ईवेंट श्रोता जोड़ने की कोशिश कर रहा हूं। window.postMessage

 app.run(function ($location, $window, $rootScope) { $window.addEventListener('message', function(e) { $location.path("/abc"); console.log($location.path()); // this prints "/abc" as expected $rootScope.$apply(); // this has no effect $scope = angular.element(document).scope(); // this is the same as $rootScope $scope.$apply(); // so this also has no effect }); }); 

$location.path Location.path को कोणीय द्वारा मान्यता प्राप्त नहीं किया जा रहा है

दूसरा प्रश्न यह कहता है कि मुझे दायरे पर $apply() करना चाहिए $apply() , लेकिन मेरे लिए उपलब्ध एकमात्र गुंजाइश $rootScope और $apply() कॉल करता है $apply() जो उस पर काम नहीं करता है

उत्तर पर एक टिप्पणी से पता चलता है कि एक दायरे के साथ मिल सकता है

 $scope = angular.element(document).scope() 

लेकिन यह मुझे $rootScope देता है, जो काम नहीं करता है।

मैं $location.path() में परिवर्तन को नियंत्रित करने के लिए कोणीय कैसे प्राप्त करूं? क्या इस तरह से एक message कॉलबैक पंजीकृत करने का एक बेहतर तरीका है क्योंकि मैं पथ को बदल सकता हूं?

वेब के समाधान से एकत्रित समाधान "कोनेरी $ location.path काम नहीं कर रहा है"

आपको $apply() विधि की तरह फ़ंक्शन के रूप में अभिव्यक्ति को चलाना चाहिए

 app.run(function ($location, $window, $rootScope) { $window.addEventListener('message', function(e) { $rootScope.$apply(function() { $location.path("/abc"); console.log($location.path()); }); }); }); 

दस्तावेज़ीकरण देखें – एनजी। $ रूटस्स्कोप । स्कोप

यदि आप testability में सुधार करना चाहते हैं, $console बजाय $console उपयोग करें और उस ऑब्जेक्ट को भी इंजेक्ट करें

स्वीकृत समाधान ऐसा करने का उचित तरीका नहीं है। आदर्श रूप से आपको डाइजेस्ट चक्र के साथ हस्तक्षेप करने की ज़रूरत नहीं होती है (जो कि $ लागू है)।

मेरे अनुसार सबसे अच्छा तरीका मेनकंट्रोलर से $ location.path () कॉल कर रहा है $emit - $on Emit $emit - $on इसे मुख्य नियंत्रक को भेजने के लिए उपयोग करें और एक स्थान पर $ location.path कॉल करें। यह डायजेस्ट चक्र के साथ हस्तक्षेप किए बिना आप बिना दोष के पुनर्निर्देशित करेगा। मुझे उम्मीद है इससे किसी को सहायता मिलेगी।

$ टाइमआउट के बिना समाधान है

सिर्फ $ state.go का उपयोग करने से पहले डिफ़ॉल्ट राज्य में रीडायरेक्ट रोकें

 event.preventDefault(); $state.go('root'); 

मुझे एक ही समस्या थी, मेरी गलती थी कि मैं एनजी क्लिक डायरेक्टिव को अपने आइटम पर बुरी तरह से चला रहा था।

खराब उदाहरण:

 <a **href="#"** ng-click="myFunctionChangeLocationPath()">... 

उदाहरण अच्छी तरह से:

 <a ng-click="myFunctionChangeLocationPath()">... 

और इसलिए आप समस्या को ठीक कर सकते हैं!