【发布时间】:2021-05-06 17:35:53
【问题描述】:
我在 Angular 中有一个过滤函数,它返回一个空数组。我知道以前有人问过类似的问题,我已经尝试了所有这些问题,但都失败了。该功能本身似乎是正确的。任何帮助将不胜感激。
gifts 是一个礼品对象数组(见下文)
打字稿:
export class DetailsPageComponent implements OnInit {
gifts: Array<Gift> = [ ... ]
id: number
currentGift: any
constructor(private currentRoute: ActivatedRoute) { }
ngOnInit(): void {
this.currentRoute.paramMap.subscribe((params: ParamMap) => {
this.id = +params.get('id')
this.currentGift = this.gifts.filter(gift => {
gift.id == this.id
})
})
}
}
礼物对象:
{
name: 'giftName',
id: 22,
}
UPDATE 将 gift.id == this.id 更改为 gift.id == 22 确实返回一个值。这意味着 this.id 没有被正确获取。不知道为什么...有什么想法吗?
【问题讨论】:
-
你是在把 id 添加到 url 吗?
-
是的,我是。它使用在另一个组件中单击的礼物的 i,并用作路由参数。在路由到该组件时,正确的 ID 在搜索栏中显示为“localhost:4200/details-page/:11”
-
你试过 localhost:4200/details-page/11(没有分号)吗?
-
"localhost:4200/details-page/:11" 不,这是不正确的。它将
params.get('id')设置为':11'并且这个字符串显然不能转换为数字。
标签: javascript angular typescript filtering