如何在angular中向数据模型添加属性,该属性仅用于在ui列表页面上显示
} 上面是我的模型,provider是id。getAll api返回IdentityProvider[],api不返回提供程序的名称 提供者的名称应该显示在列表页面上(我可以在列表页面的开始处获得提供者的列表,该列表最多包含10行数据)。 使用RxJs的最佳解决方案是什么 当前解决方案:如何在angular中向数据模型添加属性,该属性仅用于在ui列表页面上显示,angular,rxjs,Angular,Rxjs,} 上面是我的模型,provider是id。getAll api返回IdentityProvider[],api不返回提供程序的名称 提供者的名称应该显示在列表页面上(我可以在列表页面的开始处获得提供者的列表,该列表最多包含10行数据)。 使用RxJs的最佳解决方案是什么 当前解决方案: 我在模型中编写了toData(idps IdentityProvider[],providers:Provider[])方法,该方法将提供程序的每个id与提供程序数组进行比较,并添加新的属性名。最后返回列表因为
我在模型中编写了toData(idps IdentityProvider[],providers:Provider[])方法,该方法将提供程序的每个id与提供程序数组进行比较,并添加新的属性名。最后返回列表因为您用RxJS标记了问题,所以我使用了一种RxJS技术将一组具有类别Id的产品映射到类别集,以获得要在UI中显示的类别名称
export class IdentityProvider {
public id: string;
public name: string;
public description: string;
public provider: string;
public tenantId: string;
public clientId: string;
public clientSecret: string;
constructor(data?: any) {
this.id = '';
this.name = '';
this.description = '';
this.provider = '';
this.tenantId = '';
this.clientId = '';
this.clientSecret = '';
if (!data) {
// empty constructor
return;
}
this.id = data.id;
this.name = data.name;
this.description = data.description;
this.provider = data.provider;
this.tenantId = data.tenantId;
this.clientId = data.clientId;
this.clientSecret = data.clientSecret;
}
我假设您可以使用类似的东西来映射您的IdentifyProvider和Provider
我这里有一个视频,其中有更多详细信息:到目前为止,您是否尝试过任何尝试?@Nicolas在问题描述中补充道,请添加与此情况相关的其他代码,因为您的问题目前非常不清楚…
productsWithCategory$ = combineLatest([
this.products$,
this.productCategoryService.productCategories$
]).pipe(
map(([products, categories]) =>
products.map(product => ({
...product,
category: categories.find(c => product.categoryId === c.id).name
}) as Product)
)
);