繁体   English   中英

Angular2:路由器未填充参数

[英]Angular2: router not populating 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);

        });
    }

}

如您所见,我正在尝试从URL(fe http:// localhost:8080 / indices; search = test )登录参数

不填充

我有一个具有确切行为的相似组件(订阅paras 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才登录到控制台

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

我认为您需要使用ActivatedRoute

这应该在您的情况下有效:

constuctor(
    private _activatedRoute: ActivatedRoute,
) {}

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

关键是您的“主要搜索”是一些深入的组件,可观察到的路由器参数会从根URL发出参数。 而ActivatedRoute从当前路由发出参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM