Angular 角度材质表过滤、编辑过滤器预测功能

Angular 角度材质表过滤、编辑过滤器预测功能,angular,filtering,material-table,Angular,Filtering,Material Table,我在一个(PSQL Java Angular Application)中创建了一个MatTable in Angular,它由数据库中的三个不同表(Process、ProcessType和ProcessManager)组成,我已经为所有列提供了一个过滤器,但我得到的是整个对象ProcessType,而不是ProcessType的名称,对于ProcessManager,我得到的是整个ProcessManager对象,而不是全名 如何返回名称值而不是对象 以下是我在myCode的一部分中尝试的内容

我在一个(PSQL Java Angular Application)中创建了一个MatTable in Angular,它由数据库中的三个不同表(Process、ProcessType和ProcessManager)组成,我已经为所有列提供了一个过滤器,但我得到的是整个对象ProcessType,而不是ProcessType的名称,对于ProcessManager,我得到的是整个ProcessManager对象,而不是全名

如何返回名称值而不是对象

以下是我在myCode的一部分中尝试的内容 我没有很多经验,所以我看不出我做错了什么

 applyFilter(filterValue: string) {
    filterValue = filterValue.trim(); 
    filterValue = filterValue.toLowerCase(); 
    this.dataSource.filter = filterValue;
  }

  setFilterDataPredicate() {
    this.dataSource.filterPredicate = ((data: ProcessModel, filter: string): boolean => {
      let columnNames: string[] =this.displayedColumns; 
      
      for (let columnNameId in columnNames) {
        let columnName = columnNames[columnNameId];
        let value = data[columnName];

        if (value instanceof Object) {
          if (columnName === "processType") {           
         value = data.processType.name;
            console.log(value);
            if( (value as string).includes(filter) === true) {
              console.log(true);
              return true;
              }}
          if (columnName === "processManager") {
            console.log(' processManager');
            value = data.processManager.firstName + " " + data.processManager.lastName
            console.log(value);
              if( (value as string).includes(filter) === true) {
                return true;
              }}
        } else if (typeof value === 'string') {
         //debugger;
          if( (value as string).includes(filter) === true) {
            return true;
          }
        } else if (value instanceof Number) {
          let stringValue: string = String(value);
          if( stringValue.includes(filter) === true) {
            return true;
          }
        }
      }
      return false; });
  }

    getProcesses() {
    this.restService.getProcesses().subscribe((response) => {
      this.processArray = response.body;
   
      this.dataSource = new MatTableDataSource(this.processArray);
      this.dataSource.paginator = this.paginator;

      this.setFilterDataPredicate();
    }, this.handleDataRetrievalError);
  }
这是ProcessModel

export class ProcessModel
{
    id: number;
    processName: string;
    processTypeId: number;
    processType: ProcessTypeModel;
    processManager: UserModel;
    processManagerId: number;
    competentOrganizationalUnit: string;
    lastRevision: string;
    createDate: string;
    updateDate: string;

    public constructor(init?: Partial<ProcessModel>) {
        Object.assign(this, init);
    }
导出类ProcessModel
{
id:编号;
processName:string;
processTypeId:number;
processType:ProcessTypeModel;
processManager:UserModel;
processManagerId:编号;
竞争组织单元:字符串;
lastRevision:字符串;
createDate:字符串;
updateDate:字符串;
公共构造函数(初始化?:部分){
赋值(this,init);
}
这是ProcessTypeModel

export class ProcessTypeModel
{
    id: number;
    status: string;
    date: string;
    userId: number;
    name: string;
    parentId: number;
    parentProcessType: string;
    allowedChoice: boolean;
    children: ProcessTypeModel[];  

    public constructor(init?: Partial<ProcessTypeModel>) {
        Object.assign(this, init);
    }
}
导出类ProcessTypeModel
{
id:编号;
状态:字符串;
日期:字符串;
userId:number;
名称:字符串;
parentId:编号;
parentProcessType:string;
允许选择:布尔;
儿童:ProcessTypeModel[];
公共构造函数(初始化?:部分){
赋值(this,init);
}
}
这是用户模型

export class UserModel
{
    id: number;
    username: string;
    email: string;
    firstName: string;
    lastName: string;
    fullName: string;

    public constructor(init?: Partial<UserModel>) {
        Object.assign(this, init);
    }
}
导出类用户模型
{
id:编号;
用户名:字符串;
电子邮件:字符串;
名字:字符串;
lastName:string;
全名:字符串;
公共构造函数(初始化?:部分){
赋值(this,init);
}
}