【问题标题】:Generate table with rowspan using Angular 2使用 Angular 2 生成具有行跨度的表
【发布时间】:2018-06-11 18:28:53
【问题描述】:

我有这样的数据结构:

    [
  "category1": {
    "name": "Cat 1",
    "competences": [{
      "name": "Comp 1",
      "users": [{
        "name": "user1",
        "level": 99,
      }, {
        "name": "user2",
        "level": 99,
      },… {
        "name": "userN",
        "level": 9001,
      }]
    }, {
      "name": "Comp 2",
      "users": [{
        "name": "user1",
        "level": 99,
      }, {
        "name": "user2",
        "level": 99,
      },… {
        "name": "userN",
        "level": 9001,
      }]
    }]
  },
  "category2": {
    "name": "Cat 2",
    "competences": [{
      "name": "Comp 3",
      "users": [{
        "name": "user1",
        "level": 99,
      }, {
        "name": "user2",
        "level": 99,
      },… {
        "name": "userN",
        "level": 9001,
      }]
    }, {
      "name": "Comp 4",
      "users": [{
        "name": "user1",
        "level": 99,
      }, {
        "name": "user2",
        "level": 99,
      },… {
        "name": "userN",
        "level": 9001,
      }]
    },… {
      "name": "Comp N",
      "users": [{
        "name": "user1",
        "level": 99,
      }, {
        "name": "user2",
        "level": 99,
      },… {
        "name": "userN",
        "level": 9001,
      }]
    }]
  },
  "categoryN": {
    "name": "Cat N",
    "competences": [{
      "name": "Comp 5",
      "users": [{
        "name": "user1",
        "level": 99,
      }, {
        "name": "user2",
        "level": 99,
      },… {
        "name": "userN",
        "level": 9001,
      }]
    }]
  }
]

基本上是一个类别列表,包含该类别中的所有能力,并且对于每个能力类型,每个用户都有一个记录(因此每个能力的用户数量将相等)。

现在我想从中生成一个表:

+----------------+--------+--------+---+--------+
|                | user 1 | user 2 | … | user N |
+-------+--------+--------+--------+---+--------+
| Cat 1 | Comp 1 | 99     | 99     | … | 9001   |
|       +--------+--------+--------+---+--------+
|       | Comp 2 | 99     | 99     | … | 9001   |
+-------+--------+--------+--------+---+--------+
| Cat 2 | Comp 3 | 99     | 99     | … | 9001   |
|       +--------+--------+--------+---+--------+
|       | Comp 4 | 99     | 99     | … | 9001   |
|       +--------+--------+--------+---+--------+
|       | …      | …      | …      | … | …      |
+       +--------+--------+--------+---+--------+
|       | Comp N | 99     | 99     | … | 9001   |
+-------+--------+--------+--------+---+--------+
| Cat 3 | Comp 5 | 99     | 99     | … | 9001   |
|       +--------+--------+--------+---+--------+
|       | Comp 6 | 99     | 99     | … | 9001   |
+-------+--------+--------+--------+---+--------+

这意味着rowspan 将参与其中。但是,我不知道如何开始。

如果我写

<tr *ngFor="let category for categories">
    <td [rowspan]="category.components.length">

我明白了

Can't bind to 'rowspan' since it isn't a known native property

所以我的问题是:如何将模板值绑定到 rowspan 属性?

【问题讨论】:

    标签: angular grid-layout


    【解决方案1】:

    Rowspan 本身不是原生属性,它是一个属性。所以你要做的就是访问元素的rowspan属性如下:

    <td [attr.rowspan]="category.components.length"></td>
    

    这应该可以解决问题,您现在正在设置rowspan 的值。当没有要绑定的元素属性时,您必须使用属性绑定。如果您想了解更多信息,请查看official documentation

    【讨论】:

    猜你喜欢
    • 2019-04-29
    • 2011-08-30
    • 2015-05-18
    • 2019-01-30
    • 2019-11-26
    • 2017-09-10
    • 2012-10-19
    • 2019-12-12
    • 1970-01-01
    相关资源
    最近更新 更多