stackoverflow मैं और सवाल का जवाब देने की कोशिश नहीं करेगा उल्लेख है कि क्या आप के लिए पूछ रहे हैं वास्तव में एक भयानक हैक ;-)
मुझे लगता है कि आप कुछ इस तरह की जरूरत हो सकती है की भावना में
। (कोड coffeescript है)
angular
.module 'app', ['ui.router']
.run ($rootScope, $state) ->
$rootScope.$on '$locationChangeStart', (event) =>
if $state.is 'bad-state'
event.preventDefault()
$state.go 'good-state'
जब स्थान परिवर्तन (आप भी $stateChangeStart
इस्तेमाल कर सकते हैं) आप वर्तमान स्थिति की जाँच करें और अगर यह स्थिति है तो आप राज्य आप चाहते हैं करने के लिए जाना नहीं चाहता। event.preventDefault()
मूल रूप से अनुरोधित राज्य की प्रक्रिया को प्रभावी ढंग से रोकता है।
आप एक भी गंदी संस्करण की आवश्यकता है इस तरह, हस्तांतरण प्रदर्शन करने के लिए तो आप राज्यों के बजाय स्थान यूआरएल की जांच कर सकता है और $location.url
का उपयोग करें:
angular
.module 'app', ['ui.router']
.run ($rootScope, $location) ->
$rootScope.$on '$locationChangeStart', (event, nextLocation) =>
if nextLocation is '/bad/location'
event.preventDefault()
$location.path '/good/location'
यह वही है जो मैंने किया था, मुझे उम्मीद है कि इसे लागू करने का एक अच्छा तरीका है, जैसे नौसेना अस्थायीता को अक्षम करना। – Mavlarn