过滤器无法正常工作。我想用他们的孩子编号过滤大人,并将其包括在记录中。我该如何修复代码?
.html
Curry
.ts
library(functional)
show_stats5 <- function(x) {
funs <- list(mean = Curry(mean, na.rm = TRUE),
sd = Curry(sd, na.rm = TRUE),
length = length)
lapply(funs, function(f) f(x))
}
答案 0 :(得分:1)
只有一个功能,例如:
filterHotels() {
const filtered = this.hotels.filter(x => x.numberOfAd == this.adult && x.numberOfChd == this.chd);
this.dsHotels.data = filtered;
}
然后:
<input id="adult" type="number" [(ngModel)]="adult" (ngModelChange)="filterHotels()" />
<input id="child" type="number" max="3" min="0" [(ngModel)]="chd" (ngModelChange)="filterHotels()" />
是的,输入上应该只有一个ngModel,所以删除
[(ngModel)]="childCount"
请参见StackBlitz working example。
由于这些值存储在.ts文件的Adult和chd变量中,因此该值始终可供该函数使用,因此无论哪个模型更改触发它,单个函数都可以对这两个值进行过滤。
注意,您也应该也可以将任何其他过滤器变量添加到此函数,并只需从所有输入中调用它即可。
答案 1 :(得分:0)
每个功能都应同时考虑两个过滤器。
changeNumberOfAdults() {
const filtered = this.hotels.filter(x => {return this.chd == undefined ? x.numberOfAd == this.adult : x.numberOfAd == this.adult && x.numberOfChd == this.chd } );
this.dsHotels.data = filtered;
}
changeNumberOfChilds() {
const filtered = this.hotels.filter(x => {return this.adult == undefined ? x.numberOfChd == this.chd : x.numberOfAd == this.adult && x.numberOfChd == this.chd } );
this.dsHotels.data = filtered; }
此外,这是编写有角度的自定义过滤器Pipe的很好的情况,并且可以避免使用onModelChange
。