角度2的单屏参数路由

时间:2018-02-06 15:42:54

标签: angular typescript routing angular2-routing

如果您的屏幕上有选项和提交按钮。是否有内置方法通过共享角度2?

中的链接来使当前参数集可用

例如: 如果在页面上选择了以下内容:

  

UserType = Developer

我希望网址为:http://example.com/users?usertype=Developer.

目前我唯一的方法是:

        var route = this.url.path();

        if (this.url.path().indexOf("?") > -1) {
            route = this.url.path().substring(1, this.url.path().indexOf("?"));
        }

        this.router.navigate([route], {queryparams : { "usertype" : "Developer"}});

然后将其从ngOnInit()方法中的查询参数中拉回来。

这看起来很混乱,尤其是URL拆分,我认为必须有一种内置的方式来实现这一点。即使它只是一种更好的方式来获得该路线的URL路径。

1 个答案:

答案 0 :(得分:1)

您不需要这些方法。只需将此添加到您要将参数附加到的任何按钮:

<a [routerLink]="['/users']" [queryParams]="{usertype: 'Developer'}">developer</a>

这将路由到:domain.com/users?usertype=Developer。

然后,在新路线上,在ngOnInit中,您可以轻松地获取参数:

import { ActivatedRoute } from '@angular/router';

  constructor(private activatedRoute: ActivatedRoute) { }

  ngOnInit() {
   this.activatedRoute.queryParams.subscribe((data) => {
     console.log(data);
   });
  }