मैं सैमी के साथ सभी रूट परिवर्तनों को अवरुद्ध करना चाहता हूं ताकि पहले लंबित कार्रवाई हो या नहीं। मैंने sammy.before
एपीआई का उपयोग करके ऐसा किया है और मैं रूट रद्द करने के लिए झूठी वापसी करता हूं। यह उपयोगकर्ता को 'पेज' पर रखता है लेकिन यह अभी भी ब्राउज़र पता बार में हैश बदलता है और ब्राउज़र के इतिहास में मार्ग जोड़ता है। अगर मैं मार्ग रद्द करता हूं, तो मैं इसे एड्रेस बार और न ही इतिहास में नहीं चाहता हूं, बल्कि इसके बजाय मैं उम्मीद करता हूं कि पता वही रहे।इतिहास को प्रभावित किए बिना Sammy.js का उपयोग करके मार्ग रद्द करें
वर्तमान में, इस के आसपास पाने के लिए मैं या तो window.history.back (yuk) को इतिहास या sammy.redirect में मूल स्थान पर वापस जाने के लिए कॉल कर सकता हूं। जो दोनों आदर्श से कम हैं।
क्या सैमी वास्तव में मार्ग को रद्द करने का कोई तरीका है, इसलिए यह वर्तमान मार्ग/पृष्ठ पर रहता है, पता बार छोड़ देता है, और इतिहास में नहीं जोड़ता है?
यदि नहीं, तो क्या कोई और रूटिंग लाइब्रेरी है जो यह करेगी?
sammy.before(/.*/, function() {
// Can cancel the route if this returns false
var response = routeMediator.canLeave();
if (!isRedirecting && !response.val) {
isRedirecting = true;
// Keep hash url the same in address bar
window.history.back();
//this.redirect('#/SpecificPreviousPage');
}
else {
isRedirecting = false;
}
return response.val;
});
Hahaha जॉन, मैं यहाँ बारे में अधिक जानकारी खोज कैसे आप यह लक्ष्य प्राप्त द्वारा मिला आपकी एसपीए श्रृंखला में :-) –