RouteParams和查询字符串

时间:2016-06-07 19:40:36

标签: angular angular2-routing

我需要捕获查询字符串,但是我收到错误。我使用的代码很简单,但在浏览器中让我失望。

@Component({
    selector: 'body',
    viewProviders: [ ROUTER_PROVIDERS],
    directives: [ CORE_DIRECTIVES, ROUTER_DIRECTIVES],
    template: '<p>the param is {{foo}}</p>'
})
export class app {
    constructor(params: RouteParams) {
            // http://local.../?myText=Hello    
            this.foo = params.get('myText');
        }
}

documentation对此类事情并不十分清楚。它绝对没有,只有null

2 个答案:

答案 0 :(得分:3)

在Angular RC1路由器中,您需要让组件实现OnActivate接口以获取路由参数:

import { ROUTER_DIRECTIVES, Router, OnActivate, RouteSegment } from '@angular/router';

Component({
    selector: 'body',
    providers: [ ROUTER_PROVIDERS],
    directives: [ CORE_DIRECTIVES, ROUTER_DIRECTIVES],
    template: '<p>the param is {{foo}}</p>'
})
export class app implements OnActivate {
    constructor() { }

    routerOnActivate(currSegment: RouteSegment) {
        this.foo = currSegment.getParam('myText'),
}

答案 1 :(得分:2)

我认为您必须将viewProviders替换为providers或更好,如果您在启动应用时提供ROUTER_PROVIDERS,请执行以下操作: -

bootstrap(AppComponent, [ROUTER_PROVIDERS]);

可能对您有所帮助,如果您仍有任何问题,请更新您的问题并提供错误消息,或者如果您提供任何plunker更好。