我想动态地过滤我的数据。但是我们的条件必须是动态的。我想在<select (change)="filterData($event.target.value,'jobStatusId')" >
上调用这个方法。但是,jobStatusId
是可以改变的。它可以是jobTypeId
。我怎样才能使它动态呢?
我试试这个,比如说我有一个这样的数据;`
filteredData= [
{
"jobStatusId": 1,
"jobTypeId": 2,
"jobPriorityId": 3,
},
{
"jobStatusId": 2,
"jobTypeId": 3,
"jobPriorityId": 3,
},
{
"jobStatusId": 2,
"jobTypeId": 3,
"jobPriorityId": 4,
}
]
还我写个法像;
filterData(id, condition: string) {
this.filteredData = this.filteredData.filter(
(a) => a.condition === id
);
}
在这个方法中,我们关注condition: string
。condition
可以是jobStatusId
或jobTypeId
或jobPriorityId
。我想把它动态化。
比如说:当我调用like,filterData(2,jobStatusId)
时,我的数据应该是:
{
"jobStatusId": 2,
"jobTypeId": 3,
"jobPriorityId": 3,
},
{
"jobStatusId": 2,
"jobTypeId": 3,
"jobPriorityId": 4,
}
如果我这样叫它两次:
filterData(2,jobStatusId)
filterData(4,jobPriorityId)
那么,我的filteredData应该是:
{
"jobStatusId": 2,
"jobTypeId": 3,
"jobPriorityId": 4,
}
我怎样才能使它动态化呢?我怎样才能使它那样呢?如果你有更好的解决办法,你可以告诉我。但是我想在<select (change)="filterData($event.target.value,'jobStatusId')" >
上调用这个方法
2条答案
按热度按时间rdlzhqv91#
创建一个基于javascript对象的类型,如下所示:
然后,条件的类型将为
JobType
在模板HTML中,您需要发送与任何
JobType
值匹配的精确值,否则,Typescript
将报告:c9x0cxw02#
我找到了一种使用if-else的方法,但是我真的很好奇。有没有动态的方法?我的解决方案: