angular - 如何从 Angular ActivatedRoute 获取参数
问题描述
我正在尝试使用 observables 从我激活的路由中获取参数 :id 。当我在控制台上打印参数时,我得到了正确的值:id。但 this.id 并非如此。我得到值 NaN。你能告诉我有什么问题吗
export class RecipeEditComponent implements OnInit {
id: number;
editMode = false;
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.route.params.subscribe(
(params: {id: string}) => {
this.id = +params.id;
console.log(this.id);
}
);
}
}
解决方案
更改为this.id = +params.get('id')
。
您应该使用该方法get()
,因为它为给定的参数返回单个值id
。您收到错误,因为params
它不是id
作为值的键。
export class RecipeEditComponent implements OnInit {
id: number;
editMode = false;
constructor(private route: ActivatedRoute) { }
ngOnInit() {
// paramMap replaces params in Angular v4+
this.route.paramMap.subscribe(params: ParamMap => {
this.id = +params.get('id');
console.log(this.id);
});
}
推荐阅读
- .htaccess - Vue:如何强制 www
- groovy - 使用嵌套键从 groovy 中的嵌套映射中获取值
- postgresql - 使用其他数据库中的变量执行函数
- rest - 具有完全限定 URL 的 RESTful 服务调用
- android - 为什么我在Android模拟器中刷新代码有这么多问题
- typescript - 自定义 RxJS 过滤器运算符中的不可空类型保护
- r - 如何使用 mutate_at 和 set_value_labels 来更改多个变量的值标签?
- r - 列表到 XML 文件中的 data.frame
- python-3.x - 如何解决错误数据帧不可调用
- python - 如果图像是垂直的,如何自动旋转图像