2016-06-07 6 views
2

Ich muss die Abfragezeichenfolge erfassen, aber ich bekomme einen Fehler. Der Code, den ich benutze ist einfach, aber im Browser schlägt mich fehl.RouteParams und Query String

@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'); 
     } 
} 

Die documentation ist nicht ganz klar über diese Art der Sache. Und es hat absolut nichts, nur eine null.

+0

Sind Sie der veralteten-Router-Paket mit? –

+0

Ich benutze das Paket nicht. Ich benutze das letzte Paket, ist 2.0.0-rc.1 –

Antwort

3

In Angular RC1 Router, müssen Sie Ihre Komponente implementieren OnActivate Schnittstelle haben, um die Routenparameter zu erhalten:

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'), 
} 
2

Ich glaube, Sie viewProviders mit dem providers oder besser ersetzt werden müssen, wenn Sie ROUTER_PROVIDERS zum Zeitpunkt der Bootstrap Ihre App wie diese bieten: -

bootstrap(AppComponent, [ROUTER_PROVIDERS]); 

kann Ihnen helfen, wenn Sie noch irgendein Problem bitte Aktualisieren Sie Ihre Frage mit einer Fehlermeldung oder besser, wenn Sie einen Plünderer zur Verfügung stellen.