angular - Angular mat table-删除另一个后不显示添加的行
问题描述
我创建了一个表,用户可以添加行(通过推送)
dataSource = new MatTableDataSource(this.ELEMENT_DATA);
this.ELEMENT_DATA.push(...);
this.table.renderRows();
并删除行(通过过滤数据源),这些操作工作得很好。
this.dataSource.data = this.dataSource.data
.filter(i => i !== elm)
.map((i, idx) => (i.position = (idx + 1), i));
删除一行并添加另一行后,ELEMENT_DATA 数组确实获取了该项目,并且表格不会显示它。谢谢。
解决方案
表检测更改策略是ChangeDetectionStrategy.OnPush
,因此这意味着要显示新项目,您需要更改数组引用
您的删除函数返回带有过滤数据数组的新数组。我认为你的添加功能只是做array.push(newItem)
因此您可以通过这种方式添加新项目。这应该适用于您的情况。
this.dataSource.data = [...this.dataSource.data, newItem]
推荐阅读
- python - Pandas:对于特定列中的所有重复条目集,获取一些信息第 2 部分
- search - 如何获取apache solr中特定文档中存在多少个术语列表
- azure-storage - Azure Blob 下载任务编辑器
- git - 为什么给出哈希时 git log 会抛出致命的坏对象?
- java - 给定多个方法的调用顺序的 Mockito 中的条件存根
- excel - Excel 2017。7 个工作表,1 个过滤器来更改它们
- django - 即使注入了 vue js 文件,Django 模板也不会渲染 vuejs 组件
- html - Angular 6 - 对象属性更新而不设置它们
- javascript - Facebook JS SDK:“(#100) 没有发布视频的权限”错误
- javascript - 粘性导航栏突然卡住,导致故障