如何从角度2中获取url的值

时间:2016-09-07 07:54:32

标签: angular typescript

我正在努力获得价值,但它不起作用。下面是我的网址我希望从网址获取1为数字

  

https://localhost:44300/Portal#/user-edit/1

constructor(private router: Router,
    private userService: UserService) {

    this.router
        .routerState
        .queryParams
        .subscribe(params => {
            this.id = params['id'];
        });

2 个答案:

答案 0 :(得分:5)

您应该注入 ActivatedRoute 以获取 路线参数 ,如下所示,

constructor(private router: Router,
    private userService: UserService,
    private route: ActivatedRoute,) {  //<----- here

    this.route.params.subscribe(params => {
            this.id = +params['id'];   //<----- + sign converts string value to number
});

在此处阅读更多内容:https://angular.io/docs/ts/latest/guide/router.html#!#route-parameters

答案 1 :(得分:1)

很棒的回复!只是一个附加组件:

属性名称已更新。使用paramMap代替paramsqueryParamMap代替queryParams

请参阅https://angular.io/guide/router#activated-route

一个例子:

constructor(private activatedRoute: ActivatedRoute) { }
    ngOnInit() {
    this.activatedRoute.paramMap.subscribe((params: ParamMap) => {
        console.log(params.get("id"));
    })
}

有关可用方法,请参阅此链接: https://angular.io/api/router/ParamMap