Javascript Angular2:路由器未填充参数
所以,我对这件事失去了理智 我有一个包含许多组件的页面。。。但出于某种原因,我有一个问题 它是在页面的页眉进行主搜索。。。为了调试的目的,我把它精简到最低限度,但仍然无法工作 这是我的搜索组件Javascript Angular2:路由器未填充参数,javascript,angular,angular2-routing,Javascript,Angular,Angular2 Routing,所以,我对这件事失去了理智 我有一个包含许多组件的页面。。。但出于某种原因,我有一个问题 它是在页面的页眉进行主搜索。。。为了调试的目的,我把它精简到最低限度,但仍然无法工作 这是我的搜索组件 import { Component, OnInit } from '@angular/core'; import { ROUTER_DIRECTIVES } from '@angular/router'; import { Router, ActivatedRoute } from '@a
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);
});
}
}
而那个人居然记录了那些该死的情妇
从控制台:
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被登录到控制台
主搜索无法获取参数可能是什么问题?我认为您需要使用 这应该适用于您的情况:
constuctor(
private _activatedRoute: ActivatedRoute,
) {}
ngOnInit()
this._activatedRoute.params.subscribe(params => console.log(params));
}
问题是,您的“主搜索”是一些组件深度,路由器参数observable从根url发出参数。而ActivatedRoute从当前路由发出参数。你在说什么?这正是我正在使用的。你是对的,对不起。我甚至没有看到您导入的是activatedRoute而不是Route。我两者都有(专用路由器:router,专用路由:activatedRoute),但出于调试目的,我将其剥离了。您猜怎么着(主搜索是使用路径还是静态组件和应用程序进行路由?奇怪的是,您的主搜索日志位于免责声明之前。如果两个组件相似,但其中一个不工作,则它们可能以不同的方式路由/包含。您是否也可以将这些代码添加到父组件或/和路由代码中?Bo它们是以与导入相同的方式添加的…两者都是以相同的方式添加的,作为公共页面上的组件…实际上还有一个(面包屑)可以正常填充参数…:'(我在路由器上遇到了一些重大问题,我很想知道你是否找到了解决这个问题的方法。我的一个问题是,我有一个有两个孩子的父路由,我需要在路由中添加参数。父路由根本看不到PARAMs,它只给了我一个空对象。ams,它从不触发。如果我订阅this.route.url并更改参数,则会触发订阅,但传递的值不包含整个路由或任何参数…这非常令人沮丧!
constuctor(
private _activatedRoute: ActivatedRoute,
) {}
ngOnInit()
this._activatedRoute.params.subscribe(params => console.log(params));
}