2012-09-07 9 views
9

में चेंजशिप असफल मैं सोच रहा था कि कोई व्यक्ति यूआरएल का मार्ग बदल रहा है या नहीं।

एक उदाहरण के रूप में, मैं अपने html में कुछ इस तरह है:

<a ng-href="#/somewhere">To somewhere</a> 

और मैं इस का उपयोग करते हुए था:

$scope.$on('$routeChangeSuccess', function (scope, next, current) { 
    //Some code 
}) 

हालांकि, मैं सिर्फ महसूस किया कि मैं इस चलाने की आवश्यकता है कि यूआरएल बदलने से पहले कोड। क्या इसका कोई तरीका है और यह भी जानने के लिए next और current है, यह जानने के लिए कि मुझे कहां रीडायरेक्ट किया जा रहा है और कहां से?

उत्तर

24

$routeChangeStart ईवेंट है जो रूट परिवर्तन से पहले निकाल दिया जाता है। यह अगले और वर्तमान पैरामीटर दोनों का समर्थन करता है, जैसा कि आप उम्मीद करेंगे। तो, अपने यूज-केस कवर करने के लिए आप लिख सकते हैं: http://jsfiddle.net/pkozlowski_opensource/9MnE9/

तुम भी $ मार्ग प्रलेखन (https://docs.angularjs.org/api/ngRoute/service/$route) की जाँच करने के अन्य घटनाओं को देखने के लिए चाहते हो सकता है:

$scope.$on('$routeChangeStart', function(scope, next, current){ 
     console.log('Changing from '+angular.toJson(current)+' to '+angular.toJson(next)); 
}); 

यहाँ पूरा jsFiddle कार्रवाई में यह दर्शाता हुआ है $ मार्ग सेवा द्वारा उत्सर्जित।

+1

बहुत बहुत धन्यवाद! यह वही है जो मैं खोज रहा था! – Tomarto

+2

धन्यवाद। लेकिन पहला तर्क वास्तव में घटना है। – bullgare