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(f.e。http://localhost:8080/indices;搜索=测试)
未填充
我有一个具有精确行为的类似组件(订阅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免责声明之前登录到控制台
主搜索没有得到参数会是什么问题?
我认为您需要使用ActivatedRoute。
这应该适用于您的情况:
constuctor(
private _activatedRoute: ActivatedRoute,
) {}
ngOnInit()
this._activatedRoute.params.subscribe(params => console.log(params));
}
问题是,你的"主搜索"是几个组件的深度,路由器params observable从根url发出params。而ActivatedRoute从当前路由发出params。
相关文章:
- 如何让typeahead在我的搜索栏中填充自定义参数
- 如何使用Javascript从URL参数中自动填充文本字段
- IE JavaScript参数和填充输入字段
- 流星将参数传递给助手以基于该参数填充页面
- 使用javascript从url参数填充texbox值
- 当表单控件选项具有多个参数时,如何在组合框中填充所选项目
- 控制器操作参数未从 AJAX 开机自检正确填充
- 填充的参数什么都没有被填充
- 尝试制作可重用的代码,使用函数参数填充名为 target 的变量的区域
- 使用基于查询字符串参数的 Angular 填充选择元素
- Rails 输入表单填充了 jQuery .val(),但参数中不存在数据
- 使用javascript数据填充rails参数
- Angular UI路由器-尽管$stateParams获取对象,但不填充参数
- Javascript回调函数-如何填充参数
- React-router没有填充参数
- 如何填充参数$cordovaSQLite作为我自己的数组
- Javascript:如何打开一个字段填充参数的表单
- 在不同的页面上使用不同的颜色更改SVG填充参数
- Angular2:路由器未填充参数
- 用文本字段中的字符填充参数