2016-07-21 17 views
4

Also, ich meine Meinung bin verlieren diese überAngular2: Router nicht params bevöl

ich eine Seite mit vielen Komponenten haben ... aber aus irgendeinem Grund habe ich Probleme mit einem habe ...

es ist für Netz in der Kopfzeile der Seite ... für Debugging-Zwecke zu suchen gestrippt ich es Nötigste nach unten, und immer noch nicht

Dies ist meine Suchkomponente

import { Component, OnInit } from '@angular/core'; 

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


@Component({ 
    selector: 'main-search', 
    template: `<div></div>`, 
}) 

export class MainSearch implements OnInit { 
    private sub: any; 
    constructor(private route: ActivatedRoute){ 

    } 

    ngOnInit(){ 

     this.sub = this.route.params.subscribe(params => { 
      console.log('PARAMS FROM MAIN SEARCH', params); 

     }); 
    } 

} 

wie möglich se funktioniere e, ich versuche, die Parameter von der URL zu protokollieren (z.B. http://localhost:8080/indices;search=test)

NICHT bevöl

Ich habe eine ähnliche Komponente mit genauen Verhalten (Anmeldung onInit params ...

this.sub = this.route.params.subscribe(params => { 
    console.log('PARAMS FROM INDICES: ', params); 
}) 

Und dass man meldet sich tatsächlich die blutigen params!

Von Konsole :

PARAMS FROM MAIN SEARCH Object {} => main-search.ts?8502:24 
Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode. => lang.js?c27c:360 
null => index.service.ts?0bf5:40 
FROM API => index.service.ts?0bf5:49 
PARAMS FROM INDICES: Object {search: "test"} => indicesList.component.ts?5ff1:63 

Das seltsame Ding ist th nur der Hauptsucher wird vor der Angular2 Disclaimer bei der Konsole geloggt

Was könnte das Problem sein, dass Hauptsuche nicht die Params bekommen?

+0

rate keine ideen? :( –

+0

Ist Hauptsuche mit einem Pfad oder einer statischen Komponente und App geroutet? –

+0

Es ist komisch, dass Ihr Hauptsuchprotokoll vor eckigen Haftungsausschluss ist. Wenn sowohl die Komponente ähnlich ist und eine nicht funktioniert, dann werden sie wahrscheinlich weitergeleitet/Sie können auch den Code, wo diese in der übergeordneten Komponente oder/und Routing-Code hinzugefügt werden? – saurabh

Antwort

-2

Ich denke, Sie müssen die ActivatedRoute verwenden.

in Ihrem Fall Dies sollte funktionieren:

constuctor(
    private _activatedRoute: ActivatedRoute, 
) {} 

ngOnInit() 
    this._activatedRoute.params.subscribe(params => console.log(params)); 
} 

Die Sache ist Ihre ‚Haupt-Suchaktion‘ ein paar Komponenten tief ist und der Router params aus der Stamm-URL beobachtbaren aussendet params. Während die ActivatedRoute Parameter von der aktuellen Route aussendet.

+0

worüber sprichst du? das ist genau das, was ich benutze –

+0

Sie haben Recht, tut mir leid. Ich habe nicht einmal gesehen, dass du activatedRoute importiert hast und nicht Route. –

+0

Ich hatte beide (privater Router: Router, private Route: ActivatedRoute), aber für die Debugging-Zwecke habe ich es abgestreift –

Verwandte Themen