शायद अन्य सभी उत्तर कोणीय 2.X के लिए हैं।
अब यह कोणीय 5.X के लिए काम नहीं करता है। मैं इसके साथ काम कर रहा हूं।
केवल नेविगेशनएंड के साथ, आप पिछले url नहीं प्राप्त कर सकते हैं।
क्योंकि राउटर "नेवीगेशनस्टार्ट", "रूटसेक्रिटाइज़्ड", ..., से लेकर "नेवीगेशन" तक काम करता है।
आप के साथ जाँच कर सकते हैं
router.events.forEach((event) => {
console.log(event);
});
लेकिन फिर भी आपको "नेविगेशनस्टार्ट" के साथ भी पिछले यूआरएल नहीं मिल सकते हैं।
अब आपको जोड़ीदार का उपयोग करने की आवश्यकता है।
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/pairwise';
constructor(private router: Router) {
this.router.events
.filter(e => e instanceof RoutesRecognized)
.pairwise()
.subscribe((event: any[]) => {
console.log(event[0].urlAfterRedirects);
});
}
जोड़ीदार के साथ, आप देख सकते हैं कि url क्या और किस से है।
"RoutesRecognized" मूल से लक्ष्य यूआरएल के लिए बदलते कदम है।
इसलिए इसे फ़िल्टर करें और इससे पिछले url प्राप्त करें।
अंतिम पर कम नहीं,
इस कोड को मूल घटक या उच्च (उदा। app.component.ts) में डालें
क्योंकि यह कोड खत्म होने के बाद आग लगाता है।
अद्यतन कोणीय 6+
events.filter
त्रुटि देता है क्योंकि फिल्टर घटनाओं का हिस्सा नहीं है, इसलिए करने के लिए कोड बदलने
import { filter, pairwise } from 'rxjs/operators';
this.router.events
.pipe(filter((evt: any) => evt instanceof RoutesRecognized), pairwise())
.subscribe((events: RoutesRecognized[]) => {
console.log('previous url', events[0].urlAfterRedirects);
console.log('current url', events[1].urlAfterRedirects);
});