如何在Angular2中获得GET参数? [英] How to get GET paramater in Angular2?
问题描述
通过访问 myproject.dev/people?filter%5Bindustry%5D=finance&filter%5BstartWith%5D=a
,Angular2将url指向 myproject.dev/people
By accessing myproject.dev/people?filter%5Bindustry%5D=finance&filter%5BstartWith%5D=a
, Angular2 point the url to myproject.dev/people
这是我的RouteConfig:
Here is my RouteConfig:
@RouteConfig([
{
path: '/people',
name: config.route.main,
component: MainComponent,
useAsDefault: true
}
])
在MainComponent中:
In MainComponent:
/// <reference path="../../../typings/angular2.d.ts" />
import {Component, Injector} from 'angular2/core';
import {ROUTER_DIRECTIVES, Router, RouteParams} from 'angular2/router';
import {BaseResourceComponent} from '../../Component/BaseResourceComponent';
import {Status as MainStatus} from '../../reusable/modules/status.svc';
import {Status} from '../../reusable/modules/status.svc';
import {Config} from "./Config";
import URI from 'urijs';
export class MainComponent extends BaseResourceComponent {
constructor(config: Config, status: Status, mainStatus: MainStatus, private router: Router, private routeParams: RouteParams) {
super(config, status, mainStatus);
}
onInit() {
var path = new URI(window.location.href);
path.setQuery('filter[industry]', 'fashion');
path.setQuery('filter[startWith]', 'a');
console.log(path);
console.log(this.router);
//this.router.root.lastNavigationAttempt = "/people?filter%5Bindustry%5D=finance&filter%5BstartWith%5D=a"
console.log(this.routeParams);
// this.routeParams returns {params: Object}
// this.routeParams.params.get('filter') return null
}
}
我仍然可以从 this.router.root.lastNavigationAttempt
,但这只是一种棘手的方式来获得它。任何更好的方法来获取GET参数?
I still can get it from this.router.root.lastNavigationAttempt
, but this is kind of tricky way to get it only. Any better way to get the GET parameters?
推荐答案
@GünterZöchbauer是正确的。子路由只能使用矩阵参数
,但不能使用查询参数
。
@Günter Zöchbauer is correct. Child route can only use matrix parameter
but not query parameter
.
这篇关于如何在Angular2中获得GET参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!