Angular Material Table - 如何更新现有表的列标题?

2024-03-05

我正在使用 Angular 7,我有一个简单的组件角材料表 https://material.angular.io/components/table/overview。通过某些事件,例如单击鼠标,我希望能够更新现有表的数据和标题。

Before:

之后(目标):

目前,我正在很好地更新数据。但是,我无法更新列的标题文本,除非我进行了相当做作的窗口超时调用。

这很难描述,所以堆栈闪电战仓库 https://stackblitz.com/edit/angular-hx9r7n?file=app%2Ftable-dynamic-columns-example.ts应该有帮助。在我链接到的“table-dynamic-columns.example.ts”文件中,我在“changeColumnHeader”按钮单击处理程序上尝试了两种不同的策略。看来,为了显示新的列标题标题,我需要首先清除表中显示的列,然后在超时时将它们正确设置回来。也许它不起作用,因为属性名称保持不变(即“id”)并且只有标题发生变化。

有谁知道更好的方法来使其正确更新?


也许它不起作用,因为属性名称保持不变(即“id”)并且只有标题发生变化。

这就是它不更新的原因,如此处所解释的comment https://github.com/angular/material2/issues/8361#issuecomment-345804954

在同一条评论中,有一个您可以使用的建议解决方案(添加 trackBy 函数)。

为此,请包括trackBy在你的模板上:

<ng-container [matColumnDef]="config.property" *ngFor="let config of configs; trackBy: trackByIndex">
<th mat-header-cell *matHeaderCellDef> {{config.name}} </th>
<td mat-cell *matCellDef="let element"> {{element[config.property]}} </td>

包含功能trackByIndex在你的组件 ts 文件中:

trackByIndex(i) { return i; }

分叉了您提供的 stackblitz 并且它正在工作here https://stackblitz.com/edit/angular-hx9r7n?file=app%2Ftable-dynamic-columns-example.ts

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular Material Table - 如何更新现有表的列标题? 的相关文章

随机推荐

  • 列表列表中是否存在某个元素?

    我想查找给定元素是否存在于列表列表中 只有当该元素存在于列表的第一个列表中的某处时 我才得到正确的结果 有什么建议吗 memberlist X X T1 T2 memberlist X H T1 T2 memberlist X T1 T2
  • Backbone.js html 选择/单选更改事件未触发,但单击事件是

    我正在学习骨干 但我一直坚持为 html 选项元素绑定 onchange 事件 我尝试使用 change 或 change id 进行绑定 但这些都没有触发 但是 click 和 click id 事件都有效 div div
  • 如何将命名空间感知设置为 false?

    我正在尝试使用 EclipseLink MOXy 解析一些 XML 但它失败了xsi属性 如果我删除它 它解析得很好 然而 我有 100GiB 的 XML 需要费力地浏览 并且无法更改源文件 有人建议如果我可以设置XmlParser set
  • 将基于标签栏的 iPhone 项目迁移到 iPad

    像许多其他开发人员一样 我创建了使用UITabBarController作为根控制器 选项卡视图使用UINavigationController从列表深入到详细视图 和许多其他开发人员一样 我需要将这些应用程序迁移到 iPad 以便它们利用
  • OCaml 是否复制了自定义块?

    想象一下 我有一个名为 libcat 的 C 库 用于与我的毛茸茸的猫进行交互 因此 我正在为 OCaml 编写绑定来简化与 fluffy 的交互 module type CAT sig type cat val find gt cat v
  • Ansible 模板中的 For 循环

    我有问题 我在模板文件中使用 for for vhost in item server vhost endfor 与项目一起使用文件 yml ansible 中的 with items 但出出是 server d server o serv
  • aspnet 表 - 指定 TableCell 宽度?

    我有一个 asp net 表 我试图将我的列格式化为所有相同的宽度 或者说 4 列分别为 20 30 20 和 30 但是以下代码不起作用
  • android:在imageview中拉伸图像以适合屏幕

    我有一个imageview其高度和宽度设置为fill parent with a linearlayout具有相同的值集 所以我想这应该设置我的图像以适合屏幕 但它只适合 80 横向模式下的顶部和底部边距 我尝试了以下代码但没有成功 Dis
  • 将 textPath 方向从逆时针翻转为顺时针?

    默认情况下 SVG 以逆时针方式将文本环绕路径 文本的天花板粘住了路径 如何将方向更改为顺时针 以使文本的地板粘在圆周上而不是天花板上 textspace letter spacing 5px font family fantasy fon
  • 在 android 和 windows 中使用 sha1prng 给出不同的序列

    我在我的android程序和java程序中都使用了sha1prng作为伪随机数生成器算法 我给它们都设置了相同的值 但是android中生成的序列和java中生成的序列不一样 为什么会发生这种情况 解决这个问题的方法是什么 我认为这是因为
  • 如何使用 ActionCable 作为 API

    我使用 Rails 5 beta 1 和 ActionCable 构建了一个非常简单的应用程序 用于显示用户何时上线并让他们互相发送消息 现在 我基本上想采用 ActionCable 的客户端部分 在另一个应用程序的上下文中实现它 这确实n
  • 将身份添加到现有项目

    我有一个 MVC 项目 我想向其中添加 Identity 但我似乎找不到任何关于如何执行此操作的好文章 有没有一种简单的方法可以将身份添加到现有项目中 我已经有一个数据库 里面有东西 好吧 在一方面 您只需添加 Nuget 包并开始用它编写
  • 在 JScrollPane 中使用绝对布局

    我需要使用具有绝对布局的 JScrollPane 我知道根本不推荐使用 setLayout null 我一直在读到 如果您想在 JScrollPane 中使用绝对布局 则必须设置内部元素的首选大小属性 以便 JScrollPane 可以计算
  • 如何使用 WIX 打包 VSTO Word 插件以进行部署(到 Office 32 位)?

    我开发了一个VSTO Word add in在 VS 2017 Pro 中 工作正常 准备部署 但是 我找不到包装我的工作程序VSTO Word add in用于我的开发机器以外的机器 对于任何特定的机器 我需要部署一次并使其可供任何可能使
  • Istio RequestAuthentication 阻止 envoy sidecar 的就绪状态

    您能帮我理解 RequestAuthentication 吗 当我应用简单的 RequestAuthentication 并重新启动 Pod 时 envoy sidecar 的就绪状态为 false 并且日志抛出warn Envoy pro
  • 在 YAML 中使用 R 代码或 Windows 用户变量(“%userprofile%”)?

    在我的 yaml 调用中我有 title r paste0 Test Done format Sys Date B Y output word document fig caption yes fig height 4 fig width
  • 检查前提条件是否存在原子增量,即原子值小于指定值?

    在新标准 C 原子递增操作中 在递增值之前检查先决条件是否表明原子值小于指定值 我可以比下面的代码更容易 更快吗 int atomic inc std atomic int val int less than int new val int
  • Paypal html按钮自定义字段限制

    限制为 256 个字符customPaypal html 按钮的字段 有没有办法增加该限制 或者是否有其他我可以使用的字段 如custom1 custom2 其他 等 谢谢 不要通过自定义字段发送全部数据 而是将数据保存在数据库中 然后发送
  • 如何使用 Java/REST 将 Azure blob 从一个存储容器移动到另一个存储容器?

    有人可以帮忙吗 我正在关注 Java JDK 示例 其中有很多关于如何管理容器和 blob 的示例 但是没有说明如何从一个存储容器移动到另一个存储容器 例如 我在 StorageOne ContainerOne BlobName 上有一个
  • Angular Material Table - 如何更新现有表的列标题?

    我正在使用 Angular 7 我有一个简单的组件角材料表 https material angular io components table overview 通过某些事件 例如单击鼠标 我希望能够更新现有表的数据和标题 Before