html - Angular 动态行跨度

标签 html angular

人数和他们的手机号码是动态的。我需要在表格中显示它。

数据可以包含任意数量的用户名和手机号码。

dataList = [
 {
  pname: "abc",
  numbers: [{mobile1: 123, mobile2: 234}]
 },
{
  pname: "mno",
  numbers: [{mobile1: 125, mobile2: 237}]
 }
]

模板

<tr *ngFor="let data of dataList">
 <td  [attr.rowspan]="data.numbers.lenght">data.pname</td>
 <td>data.numbers</td> // Here how do I show all mobile numbers of the person.
</tr>

预期输出为以下代码。

table, th, td {
    border: 1px solid black;
}
<table>
  <tr>
    <th>Pname</th>
    <th>Numbers</th>
  </tr>
  <tr>
    <td rowspan="2">Abc</td>
    <td>123</td>
  </tr>
  <tr>
    <td>234</td>
  </tr>
  <tr>
    <td rowspan="2">Mno</td>
    <td>125</td>
  </tr>
  <tr>
    <td>237</td>
  </tr>
</table>

我面临的问题是我需要在每次运行 *ngFor 后添加 tr 并且 tr 的数量将取决于数字数组的长度以生成行跨度。

最佳答案

你可以像下面那样做

<table>        
    <ng-container *ngFor="let data of dataList">    
        <tr>
            <td [attr.rowspan]="data.numbers.length">{{data.pname}}</td>
            <td>{{data.numbers[0]}}</td>
        </tr>
        <ng-container *ngFor="let number of data.numbers; let i= index;">
            <tr *ngIf="i!=0">
                <td>{{number}}</td>
            </tr>
        </ng-container>
    </ng-container>
</table>

但是数据列表必须是以下格式,即数字必须是数组

dataList = [
 {
  pname: "abc",
  numbers: [123, 234]
 },
{
  pname: "mno",
  numbers: [125,  237]
 }
]

关于html - Angular 动态行跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53406725/

相关文章:

angular ng 如果有异步数据?

c# - 无法在 Visual Web Developer 中找到图像文件夹

HTML文件上传服务器问题

javascript - jQuery 没有生成任何输出

javascript - 如何在 Angular 5 中实现 Freshchat Widget

asp.net - 在 Asp.net MVC 5 应用程序中将 AngularJS 升级到 Angular 6

css - 添加 Doctype 会破坏布局

html - 图像的正确 OpenGraph 标记是什么?

angular - 尝试使用 paramMap 获取路由参数时出错

angular - 如何在 Angular 自定义组件中一起添加 ngModel 和 formControlName?