【问题标题】:Dynamically change column values in angular material mat-grid-list动态更改角度材料 mat-grid-list 中的列值
【发布时间】:2018-10-19 21:10:31
【问题描述】:

我正在使用 mat-grid-list :https://material.angular.io/components/grid-list/examples

所以在文档中给出(你可以参考下面的链接):

添加跨多行或多列的图块 可以使用 rowspan 和 colspan 属性单独设置每个 mat-grid-tile 的 rowspan 和 colspan。如果未设置,则它们都默认为 1。 colspan 不得超过 mat-grid-list 中的 cols 数。但是,对于行跨度没有这样的限制,将简单地添加更多行以供其填充。

但我的问题是我想要这样的结构:

将有三行,第一行 3 列,第二行 4 列,第三行 2 列。像拼贴画框。每行的列数将动态发送。

是否有任何解决方案或替代方法可以实现这一目标? 参考这张图片:https://i.stack.imgur.com/AhsrY.png

【问题讨论】:

  • 如果你想让我用你的图片在代码中创建这样的网格,请告诉我,

标签: angular typescript flexbox grid angular-material


【解决方案1】:

是的,您可以动态更改每个图块的列和行。

<mat-grid-list cols="{{desired_columns}}" rowHeight="{{desired_rowHeight}}">
    <mat-grid-tile
        *ngFor="let tile of tiles"
        [colspan]="tile.cols"
        [rowspan]="tile.rows"
        [style.background]="tile.color">
       {{tile.text}}
    </mat-grid-tile>
</mat-grid-list>

这是使用列表的一种方式,例如tiles 在您的 typescript 类中,并将值设置为动态。


或者您可以在 html 中创建您的 mat-grid-tiles 手册,但仍为每个 tile 设置不同的列和行跨度。

<mat-grid-tile [colspan]=1 [rowspan]=2>
    content
</mat-grid-tile>
<mat-grid-tile [colspan]=4 [rowspan]=1>
    content
</mat-grid-tile>
<mat-grid-tile [colspan]=3 [rowspan]=2>
    content
</mat-grid-tile>

【讨论】:

  • 如何动态改变内容?假设我想在内容中添加一个子组件,可以吗?
  • @SherwinAblañaDapito 当然这就是 Angular 的概念。只需创建任何子组件并将其插入 selector 作为 mat-grid-tile 的内容。
【解决方案2】:

你可以试试这个: angular2 table with dynamic rows and columns 或通过为不同的行提供不同的行高比和列来使用多个 mat-grid-list :

<mat-grid-list cols="{{your_desired_columns}}" rowHeight="{{your_dynamic_ratio}]">
    <mat-grid-tile>1</mat-grid-tile>
    <mat-grid-tile>2</mat-grid-tile>
    <mat-grid-tile>3</mat-grid-tile>
   ..
    <mat-grid-tile>n</mat-grid-tile>
</mat-grid-list>

【讨论】:

  • 您能否再次检查问题我已更新图像。从你的答案可以实现吗?谢谢。
  • 实际上我想更改每个 mat-grid-tile 的 cols 值,这样我可以设置 [colspan] 值,然后获得所需的输出。但问题是我无法更改每个 mat-grid-tile 的值。我只能设置一次“cols”值
  • 那么我建议使用具有给定列的表结构。并为其动态分配 colspan 和 rowspan 值。尝试使用基本 html 静态创建它,然后将其转换为动态角度代码。
猜你喜欢
  • 2018-11-21
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
  • 2019-09-04
  • 2019-08-04
  • 2018-08-06
相关资源
最近更新 更多