如何从angular2中的编码网址中检索查询参数?

时间:2017-11-23 11:25:55

标签: angular angular2-routing

如果URL如下所示,我可以获取查询参数:

  

http://localhost:4200/member/0?members=1&facility=1&field=name&criteria=contains&string=black

当浏览器对上述网址中的$=?进行编码时,我无法检索查询参数,

编码后的网址如下所示:

  

http://localhost:4200/ccm/member/0/search/submitted%3Fmembers%3D1%26facility%3D1%26field%3Dname%26criteria%3Dcontains%26string%3Dblack

以下是我试图检索查询参数的代码段(当URL未编码时工作正常,但在浏览器对URL进行编码时失败)。

this._activatedRoute.snapshot.queryParams;
this._activatedRoute.queryParams.subscribe(value=> {
   console.log('here');
   console.log(value);
});

我使用的是Angular版本2.3.1,路由器版本是3.3.1

1 个答案:

答案 0 :(得分:1)

这是如何从URL获取参数的示例。

url是这样的:

http://localhost:4200/products?order=popular

然后代码就像这样:

import { ActivatedRoute } from '@angular/router';
import 'rxjs/add/operator/filter';

@Component({ ... })
export class ProductComponent implements OnInit {
  order: string;
  constructor(private route: ActivatedRoute) { }

  ngOnInit() {
    this.route.queryParams
      .filter(params => params.order)
      .subscribe(params => {
        console.log(params); // {order: "popular"}

        this.order = params.order;
        console.log(this.order); // popular
      });
  }
}