如何在angular 10中获取上一页的url?我正在尝试使用过滤器,配对和路由器路由最初在下面的文章中提到
如何在Angular中确定上一页的URL?
第一次它不返回任何值,第二次它返回,第三次它返回值2次并在下一次递增。
如何从第一次获得确切的值,并且应该在该页面中每次只返回一次控制台?
import { Component, OnInit } from '@angular/core';
import { Router, RoutesRecognized } from '@angular/router';
import { filter, pairwise } from 'rxjs/operators';
@Component({
selector: 'app-a',
templateUrl: './a.component.html',
styleUrls: ['./a.component.css']
})
export class AComponent implements OnInit {
constructor(
private router: Router
) { }
ngOnInit(): void {
this.router.events
.pipe(filter((e: any) => e instanceof RoutesRecognized),
pairwise()
).subscribe((e: any) => {
console.log(e[0].urlAfterRedirects); // previous url
});
}
}
您可以使用NavigationEnd的事件实例,并创建一个服务来持久化当前url,并将其分配回任何路由器NavigationEnd事件上的上一个url。
我用用例的快速演示创建了一个Stacklitz:https://stackblitz.com/edit/angular-xw94et?file=src/app/app.component.html