मैं $stateChangeStart
ईवेंट देखकर ब्राउज़र Back
बटन पर क्लिक करते समय जावास्क्रिप्ट Confirm
प्रॉम्प्ट दिखा रहा हूं। निम्नलिखित पर विचार करें:event.preventDefault() ब्राउज़र इतिहास को हटा देता है
उपयोगकर्ता पृष्ठ 1, 2, फिर पृष्ठ 3 से नेविगेट करते हैं। पृष्ठ 3 पर, उपयोगकर्ता Back
बटन पर क्लिक करता है, उन्हें एक पुष्टि बॉक्स के साथ प्रस्तुत किया जाता है। Cancel
बटन पर उपयोगकर्ता क्लिक, event.preventDefault()
निष्पादित किया गया है और उपयोगकर्ता एक ही पृष्ठ पर रहता है। फिर यदि उपयोगकर्ता Back
पर दोबारा क्लिक करता है, और दूसरी बार OK
चुनता है, तो उपयोगकर्ता को पृष्ठ 1 पर वापस ले जाया जाता है। पृष्ठ 2 के साथ क्या हुआ? क्या event.preventDefault()
अंतिम इतिहास को हटाता है? मैं ब्राउज़र को पिछले पृष्ठ को छोड़ने से कैसे रोकूं?
$rootScope.$on('$stateChangeStart',
function (event, toState, toParams, fromState, fromParams) {
var retVal = confirm("You have unsaved changes. If you leave the page, these changes will be lost.");
if (retVal == false) {
// user wants to cancel navigating back.
event.preventDefault();
}
});