2016-07-21 3 views
4

Итак, я теряю свой разум над этимAngular2: маршрутизатор не заселять Params

У меня есть страница со многими компонентами ... но по какой-то причине у меня возникли проблемы с одним ...

его для поиска в сети в заголовке страницы ... для целей отладки я раздел его до минимума, и до сих пор не работаю

Это мой компонент поиска

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); 

     }); 
    } 

} 

, как вы можете себе e, я пытаюсь зарегистрировать params из URL (f.e. http://localhost:8080/indices;search=test)

НЕ заселение

У меня есть подобный компонент с точным поведением (подписавшись на Params OnInit ...

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

И что один на самом деле записывают кровавую Params!

С консолью :

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 

Странная вещь - это только в mainsearch заносится на консоль до того, как Angular2 откажется от ответственности

Что может быть проблемой в том, что в главном поиске не получаются параметры?

+0

Угадайте, нет идей? :( –

+0

Основной поиск маршрутизируется с использованием пути или статического компонента и приложения? –

+0

Странно, что ваш основной поисковый журнал до углового отказа. Если оба компонента похожи и один не работает, то, вероятно, они маршрутизируются/которые могут быть добавлены в родительский компонент и/или код маршрутизации? – saurabh

ответ

-2

Думаю, вам нужно использовать ActivatedRoute.

Это должно работать в вашем случае:

constuctor(
    private _activatedRoute: ActivatedRoute, 
) {} 

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

Дело в том, ваш «главный-поиск» глубока несколько компонентов и маршрутизатор Params наблюдаемые Издает параметры из корневого URL. Принимая во внимание, что ActivatedRoute испускает параметры из текущего маршрута.

+0

О чем ты говоришь? это именно то, что я использую –

+0

Вы правы, мне жаль. Я даже не видел, что вы импортировали activRoute, а не Route. –

+0

У меня были оба (частный маршрутизатор: Маршрутизатор, частный маршрут: ActivatedRoute), но для целей отладки я раздели его –

Смежные вопросы