我有一个带有自定义管道和标准切片管道的* ngFor:
<div *ngFor="let offer of offerListData | slice:0:propertyLimit | offerFilter: countyId: cityId as filtered; let i = index; let propCount = count"><p>Offer id = {{offer.Id}}</p></div>
这很好用,但是有可能在切片管道启动之前获得offerListData的长度?
我希望得到的结果是:
要约数量= 4
优惠ID = 1
优惠ID = 2
优惠编号= 3
优惠ID = 4
我应该将计数器从管道传递到组件吗,如果是,怎么办?
编辑:
感谢@JB Nizet,我发现我的问题确实令人困惑,所以我尝试澄清我想要的内容
在我的* ngFor中,我有一个名为offerListData的自定义管道,在过滤县和市之后,在其中列出了我的要约
我只想显示要约的前5个,并有一个按钮来加载其余要约(我已经修复了此功能)
要管理我使用默认的切片管道
问题是我想显示自定义管道之后而不是切片管道之后得到的报价
如果使用此选项,我将获得自定义管道之前的报价总数: offerListData.length
如果我使用了filtered.length,那么在自定义管道和切片管道之后,我只会得到要约数量
我真正想要的是在自定义管道之后显示要约的总数。 首选是这样的:
<p>Total number of offers: 4</p>
<div *ngFor="let offer of offerListData | slice:0:propertyLimit | offerFilter: countyId: cityId as filtered;">
<p>Offer id = {{offer.Id}}</p>
</div>
在“要约总数”中使用的管道中设置“ count”参数会更好吗?甚至可以将参数从管道发送到视图或组件吗?
编辑2: 我找到了解决方法,不知道这是否是最好的方法,但这可行:
我在ngFor外部添加了一个div元素,其ID为offerCounter
在管道中,我使用了这个
document.getElementById('offerCounter').innerHTML = this.resultFromFilter.length.toString();