我在打字稿中遇到了以下问题。我想用一个元素过滤一个数组,该元素来自另一个过滤器操作与另一个数组。我试着写一个Pipe来解决这个问题,但它不起作用,我不知道为什么。
以下是管道代码:
@Pipe({
name: 'FilterABC',
pure: false}) export class FilterABC implements PipeTransform {
transform(impacts: any[], secObjec: string, secObjects: any[]): any {
let x: string = (secObjects.filter((item) => item.secObj === secObjec))[0].toString();
return impacts.filter((item) => item.securtyObjective.toString() === x);
}}
这是HTML代码:
<select #imValue class="form-control">
<option *ngFor="let impact of impacts | FilterABC:secObj.value:secObjs;">{{impact.securtyObjective.id}}</option>
</select>
非常感谢!
答案 0 :(得分:0)
我想你忘了从数组过滤器方法中的箭头函数返回结果。
尝试此更新的管道定义 -
@Pipe({
name: 'FilterABC',
pure: false
})
export class FilterABC implements PipeTransform {
transform(impacts: any[], secObjec: string, secObjects: any[]): any {
let x: string = (secObjects.filter((item) => { return item.secObj === secObjec; }))[0].toString();
return impacts.filter((item) => { return item.securtyObjective.toString() === x; });
}
}
我希望这会有所帮助:)