Angular2:路由器没有填充params

时间:2016-07-21 11:51:50

标签: javascript angular angular2-routing

所以,我对这个

失去了理智

我有一个包含许多组件的页面......但由于某种原因,我遇到了一个问题......

用于在页面标题中进行主电源搜索...出于调试目的,我将其剥离到最低限度,但仍然无法正常工作

这是我的搜索组件

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

        });
    }

}

如您所见,我正在尝试从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 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 

奇怪的是,在Angular2免责声明之前,只有mainsearch被记录到控制台

主搜索无法获得参数的问题是什么?

1 个答案:

答案 0 :(得分:-2)

我认为你需要使用ActivatedRoute

这适用于您的情况:

getAllVisibleItems

事情是你的'主搜索'是一些深层组件,路由器参数可观察从根网址发出参数。而ActivatedRoute从当前路线发出参数。