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