2016-09-13 7 views
12

मान लें हम इस तरह एक तर्क है कि:कोणीय यूआई-रूटर में ब्राउज़र इतिहास को बदले बिना स्थिति को बदलना

  • राज्य एक से, राज्य बी
  • करने के लिए परिवर्तन, एप्लिकेशन जब भी हम राज्य बी के लिए आते है हमेशा सी राज्य के लिए हमें अनुप्रेषित $state.go(stateC)
  • बुला अब से हम राज्य सी में हैं

मेरे सवाल यह है कि (से राज्य सी राज्य एक करने के लिए वापस जाने के लिए तथ्य यह देखते हुए कि राज्य एक किसी भी राज्य हम डॉन किया जा सकता है दौड़ में नहीं पता समय-समय पर, उपयोगकर्ता किसी भी अन्य राज्यों से राज्य बी तक पहुंच सकता है)

उत्तर

21

उपयोग मूल्य साथ location विकल्प "की जगह" ...

$state.go(stateC, null, { 
    location: 'replace' 
}) 

देखें https://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$state#methods_go

स्थान - {बूलियन = सत्य | स्ट्रिंग =} - truefalse नहीं होगा, तो स्थान बार में यूआरएल अपडेट करेगा। यदि स्ट्रिंग, "replace" होना चाहिए, जो यूआरएल अपडेट करेगा और अंतिम इतिहास रिकॉर्ड को प्रतिस्थापित करेगा।

+0

बिल्कुल मुझे क्या चाहिए! आपका बहुत - बहुत धन्यवाद। –

-1

आप किसी सेवा में आने वाले राज्यों का ट्रैक रख सकते हैं और फिर पिछले राज्य पर $ state.go पर कॉल कर सकते हैं।

तुम इतनी तरह राज्य में परिवर्तन देख सकते हैं:

$rootScope.$on('$stateChangeStart', 
function(event, toState, toParams, fromState, fromParams){ 
    // add fromState to history 
}); 

How to $watch state change of $stateProvider in AngularJS?

संबंधित मुद्दे