我正在研究带有复选框和过滤文本框的角 matTree。复选框的选择/取消选择工作正常问题是在过滤树的数据源并选择一些过滤后的项目后,它们被添加到 selectionModel 的选择集中,但是每当我再次搜索这些项目并取消选择它们时,SelectionModel 不会受到影响。只需将未选择的项目再次添加到它的选择集中即可。我添加了以下代码,以查看取消选择后删除的项目,但注意到正在调用刚刚添加的方法。
this.checklistSelection.changed.subscribe(change => {
console.log('Added items:', change.added);
console.log('Removed items:', change.removed);
console.log('Source selection model:', change.source);
})
这是我切换 SelectionModel 的代码:
addSelectedNode(node){
this.checklistSelection.toggle(node);
this.fillSelectedFileIds(this.checklistSelection);
}
findSelectedNodes(node){
return (this.selectedFileIds.filter(x=>x.id==node.id).length>0);
}