如何在Angular 2 RC4中获取查询参数?我尝试了文档,但没有任何意义。
e.g。
http://localhost:3000/models/initials/mid_c1e1c31e6eff42f1982af4124a823b36?test=4
在ngOnInit
中如何获取参数test
的值?
private sub: Subscription;
ngOnInit() {
this.sub = this.route.params.subscribe(params => {
console.log(params);
let id = params['test'];
console.log(id);
});
}
这是我导航到我想要获取查询参数的路线:
this._router.navigate(['models/initials/'+model_id+'?test=4']);
答案 0 :(得分:5)
OP询问了查询参数,正确的方法是使用该路径下的queryParams对象。
ngOnInit() {
this.sub = this.route.queryParams.subscribe(params => {
console.log(params);
let id = params['test'];
console.log(id);
})
}
这与另一个回答引用的params对象不同。
我还建议使用NavigationExtras对象正确地添加到查询字符串中:https://angular.io/docs/ts/latest/guide/router.html向下在"查询参数和片段"部分。
答案 1 :(得分:3)
constructor(private route:ActivatedRoute) {}
ngOnInit() {
this.route.params.map(params => params['test'])
.subscribe(id => { /* do what you want with the id */ });
答案 2 :(得分:0)
您必须使用ActivatedRoute:
private sub: Subscription;
constructor(private router: Router, private activatedRoute: ActivatedRoute){}
ngOnInit() {
this.sub = this.activatedRoute.params.subscribe(
(param: any) => this.test = param['test']
)
}
答案 3 :(得分:-1)
您是否尝试过RouteSegment
routerOnActivate(curr: RouteSegment) {
this.userName = curr.getParam('userName');
this.projId = curr.getParam('projId');
}
答案 4 :(得分:-1)
可以这种方式使用Javascript:
(new URL(location)).searchParams.get("parameter_name")