【发布时间】:2019-11-30 12:58:33
【问题描述】:
是否可以在不通过数组的情况下创建对数组的新引用? 我的问题是我有一个纯角管,它不能检测到推/弹出变化。我想避免这样的解决方案:
this.array = this.array.filter(e=>true)
这增加了复杂性只是为了更新参考。 我已经尝试了第一件事,但它不起作用(管道没有检测到任何变化)而且我对 js/ts 的熟悉程度不足以知道它为什么不起作用。
const newRef = this.array;
this.array = null;
this.array = newRef
我有获取对象数组和过滤器数组并返回过滤对象数组的管道。
@Pipe({
name: 'eventFilter'
})
export class EventFilterPipe implements PipeTransform {
transform(events: EventDtos[], filters:Filter[]): any {
//return filtered events
}
管道使用情况:
<div class="event" *ngFor="let event of events | eventFilter:filters">
html stuff
</div>
从filters 推送/弹出过滤器后,管道的转换未被调用,因此我使用此代码强制transform 调用:
this.filters = this.filters.filter(e=>true)
但此时我不知道哪个更快,这种方法还是不纯的管道。所以理想情况下我想离开纯管道并更新filters参考而不增加复杂性
【问题讨论】:
-
您的样本最后应该创建对数组的引用。您能否详细说明您使用的是什么管道以及它为什么/如何不起作用?
-
@JeffryHouser 我添加了更多细节
标签: javascript angular typescript reference pipe