📅  最后修改于: 2023-12-03 14:57:13.329000             🧑  作者: Mango
在Angular应用中,有时需要获取之前访问的URL,以便根据这个URL执行不同的操作。本文将介绍如何在Angular应用中获取上一个URL。
Angular的Location Service提供了一种方法来访问URL。之前的URL可以通过读取Location Service的history对象中的前一个URL属性来获取。
import { Component } from '@angular/core';
import { Location } from '@angular/common';
@Component({
selector: 'app-component',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
previousUrl: string;
constructor(private location: Location) {
this.previousUrl = this.location.getState()['previousUrl'];
}
}
这个方法返回的URL是一个字符串类型。
Angular Router提供了一个events属性,可以订阅Router events并获取路由事件的详细信息。可以利用这个特性来获取之前的URL。
import { Component } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
@Component({
selector: 'app-component',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
previousUrl: string;
constructor(private router: Router) {
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
this.previousUrl = event.url;
}
});
}
}
这种方法返回的URL同样是一个字符串类型。
本文介绍了两种方法可以获取之前的URL。如果只需要获取上一个URL,可以使用Location Service。如果需要订阅Router events以获取更多的路由事件信息,则可以使用Router。