Angular 使用传入的参数作为过滤器中的属性,角度
我有一个搜索过滤器,可以搜索不同的参数,如标题、描述、价格。 我的过滤器工作正常,但我希望参数根据传入的Angular 使用传入的参数作为过滤器中的属性,角度,angular,typescript,filter,include,subscribe,Angular,Typescript,Filter,Include,Subscribe,我有一个搜索过滤器,可以搜索不同的参数,如标题、描述、价格。 我的过滤器工作正常,但我希望参数根据传入的filterBy 就像这样: filterItems(filterBy: string, filterText: string): Subscription { return this.http .get<{ items: Items[] }>(this.API) .pipe(take(1)) .subscribe((items) =&
filterBy
就像这样:
filterItems(filterBy: string, filterText: string): Subscription {
return this.http
.get<{ items: Items[] }>(this.API)
.pipe(take(1))
.subscribe((items) => {
this.itemsArray = items.items;
this.itemsArray = this.itemsArray.filter((item) => {
return item.title.includes(`${filterText}`);
});
});
}
项目界面:
export interface Items {
title: string;
description: string;
price: string;
email: string;
image: string;
}
我不得不在界面上添加一个索引器,这对我来说是一个新概念。因此,这起了作用:
export type Items = {
[filterBy: string]: string;
title: string;
description: string;
price: string;
email: string;
image: string;
};
为什么这不起作用?你得到了什么?如果你做一个console.log(filterBy==“title”)你得到了真的吗?@Moshezauros我得到了这个:元素隐式地有一个“any”类型,因为“string”类型的表达式不能用于索引类型“Items”。在“Items”类型上未找到具有“string”类型参数的索引签名。我将在问题中显示更多的代码以进行澄清things@bjlasc01是的,先生,的确如此
export interface Items {
title: string;
description: string;
price: string;
email: string;
image: string;
}
export type Items = {
[filterBy: string]: string;
title: string;
description: string;
price: string;
email: string;
image: string;
};