0

我想从 url 中获取 id

http://localhost:4200/courses/5a0eb3d7f6b50c2589c34e57
所以在我的 app.module.ts 我有这样的路线
{路径:'课程/:id',组件:课程组件,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) 我得到关注

4

2 回答 2

2

你应该使用 rxjs。

this.route.params.pluck('id').subscribe(v => console.log(v));

最好的,因为.params可能很快就会被弃用:

this.route.paramMap.subscribe(paramMap => paramMap.get('id'));

一切都在文档中...... https://angular.io/guide/router#parammap-api

于 2017-12-15T11:49:18.273 回答
0

这是一个路由参数,您应该使用 params 属性

this.id = this.route.snapshot.params["id"];
于 2017-12-15T11:48:23.983 回答