从 url Angular 获取查询参数
getting query params from url Angular
我想从 url
http://localhost:4200/courses/5a0eb3d7f6b50c2589c34e57
获取 id 所以在我的 app.module.ts 我有这样的路线 {path:'courses/:id', component:CourseComponent, canActivate:[AuthGuard]}
在我的 course.component.ts 我有以下代码:
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-course',
templateUrl: './course.component.html',
styleUrls: ['./course.component.css']
})
export class CourseComponent implements OnInit {
id: String;
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.id = this.route.snapshot.queryParams["id"];
console.log(this.id)
}
}
实际上在我的开发者控制台中我可以看到以下
如果我尝试 console.log(params) 我会关注
这是一个路由参数,您应该使用参数 属性
this.id = this.route.snapshot.params["id"];
你应该使用 rxjs。
this.route.params.pluck('id').subscribe(v => console.log(v));
更好,因为 .params
可能很快就会被贬低:
this.route.paramMap.subscribe(paramMap => paramMap.get('id'));
我想从 url
http://localhost:4200/courses/5a0eb3d7f6b50c2589c34e57获取 id 所以在我的 app.module.ts 我有这样的路线
{path:'courses/:id', component:CourseComponent, canActivate:[AuthGuard]}在我的 course.component.ts 我有以下代码:
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-course',
templateUrl: './course.component.html',
styleUrls: ['./course.component.css']
})
export class CourseComponent implements OnInit {
id: String;
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.id = this.route.snapshot.queryParams["id"];
console.log(this.id)
}
}
实际上在我的开发者控制台中我可以看到以下
这是一个路由参数,您应该使用参数 属性
this.id = this.route.snapshot.params["id"];
你应该使用 rxjs。
this.route.params.pluck('id').subscribe(v => console.log(v));
更好,因为 .params
可能很快就会被贬低:
this.route.paramMap.subscribe(paramMap => paramMap.get('id'));