javascript 在表中显示html元素

c0vxltue  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(177)

我尝试在表中显示元素,但我不明白如何像这样显示它:
| Store_id1|Store_id2|Store_id3|
| --------------|--------------|--------------|
| 预算1|预算2|预算3|
我的table是:
| Store_id1|
| --------------|
| 预算1|
| Store_id2|
| 预算2|
| Store_id3|
| 预算3|
我的代码是:

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>

<table class="mat-elevation-z8">
  <div *ngFor="let store of stores">
    <ng-container matColumnDef={{store.store_id}}>
      <tr>
        <th scope="col">{{store.store_id}}</th>
        <td scope="row">{{store.budget}}</td>
      </tr>
    </ng-container>
  </div>
</table>

编辑。
所以问题是我将我的数据显示为:
门店1门店2门店3
预算1预算2
但在我看来,数据显示如下:

*酒店1酒店1**酒店2 * 酒店2 * 酒店3 * 酒店3 * 酒店3 * 酒店3 * 酒店

7uzetpgm

7uzetpgm1#

请记住,角材料表,有模板的一部分,在那里你塑造你的表。它们是matColumnDef/matHeaderCellDef/matCellDef。在循环中,您尝试设置具有动态列的表,但为空。
然后displayedColumns也必须是动态的,因为它控制显示或不显示哪些列。
当模板准备好并且dataSource接收到数据后,实际上填充了数据。

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>

<!-- somewhere you get value of store in scope -->
<!-- there you have to add displayedColumns = store.map(s => s.store_id) -->

<table mat-table class="mat-elevation-z8" [dataSource]="store">
  <!-- this loop defines table template, i.e. columns -->
  <div *ngFor="let store of stores">
    <ng-container matColumnDef="{{store.store_id}}">
      <th mat-header-cell *matHeaderCellDef>{{store.store_id}}</th>

      <!-- actual data is coming from dataSource, this is implicit loop from your perspective -->
      <td mat-cell *matCellDef="let s">{{s.weight}}</td>
    </ng-container>
  </div>

  <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
  <tr mat-row *matRowDef="let s; columns: displayedColumns;"></tr>
</table>

上面的例子是粗糙的猴子打字,不假装是有效的代码,仅用于说明目的。有效的代码也将包含TypeScript部分,其中检索store并计算displayedColumns

相关问题