วิธีที่ฉันทำในขณะที่นำทางไปยังหน้าอื่น ๆ ให้เพิ่มพารามิเตอร์แบบสอบถามด้วยการส่งผ่านตำแหน่งปัจจุบัน
this.router.navigate(["user/edit"], { queryParams: { returnUrl: this.router.url }
อ่าน param แบบสอบถามนี้ในองค์ประกอบของคุณ
this.router.queryParams.subscribe((params) => {
this.returnUrl = params.returnUrl;
});
หาก returnUrl อยู่เปิดใช้งานปุ่มย้อนกลับและเมื่อผู้ใช้คลิกปุ่มย้อนกลับ
this.router.navigateByUrl(this.returnUrl); // Hint taken from Sasxa
สิ่งนี้จะสามารถนำทางไปยังหน้าก่อนหน้า แทนที่จะใช้ location.back ฉันรู้สึกว่าวิธีการข้างต้นนั้นปลอดภัยกว่าพิจารณากรณีที่ผู้ใช้เชื่อมโยงไปยังหน้าของคุณโดยตรงและถ้าเขากดปุ่มย้อนกลับด้วย location.back มันจะเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าก่อนหน้าซึ่งจะไม่ใช่หน้าเว็บของคุณ