私は角度4/5を使用しています。文字列値に基づいてAngularでいくつかのテーブルを作成する必要があります。ここで私がテーブルを作成するために作ったモデルがあります。文字列値に基づいてAngularで表を作成する方法は?
class NameValuePair {
Name: string;
Value: string;
}
export class Family {
Properties: Array<NameValuePair>;
PropertyType: string;
}
以下に、テーブルに含まれるハードコードされた値を示します。
export const list1: Family[] =
[
{
Properties: [
{
Name: "A",
Value: "1"
},
{
Name: "B",
Value: "2"
},
{
Name: "C",
Value: "3"
}
],
PropertyType: "Type 1"
},
{
Properties: [
{
Name: "A",
Value: "10"
},
{
Name: "B",
Value: "20"
},
{
Name: "C",
Value: "30"
}
],
PropertyType: "Type 1"
},
{
Properties: [
{
Name: "A",
Value: "100"
},
{
Name: "B",
Value: "200"
},
{
Name: "C",
Value: "300"
}
],
PropertyType: "Type 2"
}
]
ここで注目すべきは、テーブルがPropertyTypeに基づいて作成されることです。上記の構造の場合と同様に、配列の最初の2つの要素のPropertyTypeは同じタイプ1なので、2つのテーブルが作成されます。 1つはキャプション/見出し:タイプ1とキャプション:タイプ2のものです。 2番目の配列要素のプロパティ[]配列は、最初のテーブルの2番目の行になります。私はこのPropertyType文字列値に基づいてテーブルを作成する方法についての論理を見つけることができません。しかし、それは私がcomponent.htmlファイルに書いたものですが、このロジックは間違っています。上述したように、ここで
<div class="container pt-4" *ngFor="let element of list;let i = index">
<ng-container *ngIf="list[i].PropertyType == list[i+1].PropertyType">
<div style="padding-left:250px;font-size: 20px" class="pb-2">{{element.PropertyType}}</div>
<table id="{{element.PropertyType}}" class="table table-striped table-bordered table-responsive pb-3 mx-auto">
<thead style="height:40px">
<tr align="center">
<th *ngFor="let property of element.Properties" style="font-size: 20px">{{property.Name}}</th>
</tr>
</thead>
<ng-container *ngFor="let element1 of list">
<tr align="center" *ngIf="element.PropertyType == element1.PropertyType">
<td *ngFor="let property of element1.Properties; let propertyIndex = index" style="width: 200px">
<ng-container [ngSwitch]="propertyIndex">
<div *ngSwitchDefault style="font-size: 20px">{{property.Value}}</div>
</ng-container>
</td>
</tr>
</ng-container>
</table>
</ng-container>
</div>
リストは、LIST1のCONST配列を指します。助けてください。