【问题标题】:Angular + Bootstrap Tables with expandable rows具有可扩展行的 Angular + Bootstrap 表
【发布时间】:2019-07-24 03:39:38
【问题描述】:

在我当前的项目中,由于是在 *ngFor 指令中生成的,并且数据来自后端,因此我有一个包含可变数量的列和行的表。由于这一点以及单元格中可能存在大量文本的事实,存在溢出并且并非所有列都可以显示。 我最初通过将溢出换行换行来解决它,但是由于它可能是很多文本,因此某些行可能太大了。

我的想法是在溢出隐藏的地方显示某种预览(类似于overflow: ellipsis,但可以展开行以显示所有信息。这样,行将具有合理的大小,但所有可以显示信息。数据存储在一个对象中,列名是string[],数据是string[][]

<div class="table-responsive">
<table class="table  table-bordered table-striped table-hover table-condensed">
  <thead>
    <tr>
      <th *ngFor="let name of data.columnNames">{{name}}</th>
    </tr>
  </thead>
  <tbody>
    <tr *ngFor="let row of data.data">
      <td *ngFor="let item of row">
        {{item}}
      </td>
    </tr>
  </tbody>
</table>

你们会怎么做呢?

【问题讨论】:

  • 试过引导弹出窗口?它类似于模态,但不是那么困难而且速度更快。如果您不需要任何操作,它非常适合大量文本。 getbootstrap.com/docs/4.0/components/popovers
  • 如果我错了,请纠正我,但它似乎取决于图书馆。如果可以的话,我宁愿不要使用太多。
  • 我也使用不带 jquery 的引导程序,原因是角度。但是 Popper.js 是一个库,主要是通过 bootstrap 交付的,它也需要 jquery。但是,是的,如果您不想使用 jquery 和 popper.js 库,它不适合您。那么模态解决方案可能是最接近的替代方案。但你也可以使用 Nebular,它是一个 Popover Angular 模块。 akveo.github.io/nebular/docs/components/popover/…
  • 我已经有 jQuery 但没有 Popper.JS。我想我找到了一个只使用 jQuery/JS 的解决方案。通常,溢出由“溢出:省略号”处理。但是,当您单击该行时,使用一些 jQuery,您将其切换为显示所有数据。你觉得这样行吗?
  • 当然,你可以在一个简单的 js-script onClick 上更改 CSS-Style 溢出的 CSS-Property。但是您也可以使用角度指令ngStyle或更好的(我更喜欢)ngClass由函数检查是否应用了此类。但是对于所有这些,您需要一个 id 来更改动态生成的td 的样式。最好的方法是将点击的td 的行和列发送到您正在调用的方法。它看起来像这样:stackoverflow.com/a/49234982/5677688 我有类似的东西并将点击的元素保存在一个变量中。

标签: html css angular responsive-design


【解决方案1】:

您可以离开带有溢出省略号的表格,然后单击该行,您可以打开一个显示所有数据的模式,以改善所有屏幕分辨率下的用户体验。

【讨论】:

  • 我刚刚意识到,使用一点 JS 在显示所有数据和“溢出:省略号”之间切换 onClick 不是可能/更好吗?
猜你喜欢
  • 1970-01-01
  • 2021-11-10
  • 2012-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多