我已经创建了一个管道,可以使用*ngFor
with objects。但是,更新对象时,管道不会更新。我通过使用有状态管道pure: false
找到了解决方案here。手动触发管道更新
这个解决方案在性能方面是不可接受的,因为它会刷新每次更改的管道(我几乎在任何地方都使用这个管道来渲染复杂的元素)。
有没有办法触发管道的手动刷新,以便只在需要时刷新?
这是一个plunker - 要查看该问题,请尝试通过单击-
按钮来删除名称。如果添加pure:false
你会看到,它会工作:
@Pipe({name: 'keys', pure: false})
export class Keys implements PipeTransform {
transform(value, args:string[]) : any {
let keys = [];
for (let key in value) {
keys.push({key: key, value: value[key]});
}
return keys;
}
}
我想什么是什么添加到我的delName()
功能,所以它更新管......
你是否需要使用'Pipe'并且能够改变'names'的数据结构? – ulubeyn
必须使用'Pipe',否,但是我找不到在'* ngFor'中使用对象的更好的解决方案。我无法改变我的数据结构... – ncohen