如何在angular中向数据模型添加属性,该属性仅用于在ui列表页面上显示

如何在angular中向数据模型添加属性,该属性仅用于在ui列表页面上显示,angular,rxjs,Angular,Rxjs,} 上面是我的模型,provider是id。getAll api返回IdentityProvider[],api不返回提供程序的名称 提供者的名称应该显示在列表页面上(我可以在列表页面的开始处获得提供者的列表,该列表最多包含10行数据)。 使用RxJs的最佳解决方案是什么 当前解决方案: 我在模型中编写了toData(idps IdentityProvider[],providers:Provider[])方法,该方法将提供程序的每个id与提供程序数组进行比较,并添加新的属性名。最后返回列表因为

}

上面是我的模型,provider是id。getAll api返回IdentityProvider[],api不返回提供程序的名称

提供者的名称应该显示在列表页面上(我可以在列表页面的开始处获得提供者的列表,该列表最多包含10行数据)。 使用RxJs的最佳解决方案是什么

当前解决方案:


我在模型中编写了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)
    )
  );