在 Angular 中可以使用 ActivatedRoute 服务来获取路由参数和查询参数。首先,需要订阅 route 的 queryParamMap,它返回一个 Observable,每当查询参数发生更改时就会更新。
在组件中引入 ActivatedRoute 和 Router,并在 constructor 中进行注入。然后,可以使用 ActivatedRoute 的 snapshot 或 queryParams 访问查询参数。
以下是一个示例代码:
import { Component, OnInit } from '@angular/core'; import { Router, ActivatedRoute, ParamMap } from '@angular/router'; import { switchMap } from 'rxjs/operators'; import { Observable } from 'rxjs';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponent implements OnInit {
queryParams$: Observable
constructor( private route: ActivatedRoute, private router: Router ) { }
ngOnInit() { // 获取查询参数 this.queryParams$ = this.route.queryParamMap; // 订阅查询参数 this.queryParams$.subscribe(params => { console.log(params.get('key1')); // 获取查询参数key1的值 console.log(params.get('key2')); // 获取查询参数key2的值 }); } }
在上面的代码中,我们订阅了 queryParams$,并使用其 get 方法来获取查询参数的值。通过该方法,就可以从重定向的 URL 中获取查询参数。