📜  获取上一个 url angular - Javascript (1)

📅  最后修改于: 2023-12-03 14:57:13.329000             🧑  作者: Mango

获取上一个 URL - Angular

在Angular应用中,有时需要获取之前访问的URL,以便根据这个URL执行不同的操作。本文将介绍如何在Angular应用中获取上一个URL。

方法一:使用Location Service

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是一个字符串类型。

方法二:利用订阅Router events

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。