ユーザーのテーブルを表示しようとしています。すべての<tr>
タグは次のように記述されUserRowComponent
ます:
@Component({
selector: 'user-row',
template: `
<tr>
<td>{{ user.first_name }}</td>
<td>{{ user.last_name }}</td>
</tr>
`
})
私が使用しているユーザーのループの場合:
<tr>
<!-- head of tabe -->
<th>...<th>
....
</tr>
<user-row *ngFor="let user of users" [user]="user">
しかし、その結果、内部にタグを持つ複数の<user-row></user-row>
タグを持つテーブルを取得します。<tr>
解決策があります-selector
プロパティを次のように設定し、テンプレートからtr.user-row
wrpapping<tr>
タグを削除し<user-row>
ます。
<user-row>
しかし、次のように直後に、同じテーブル内の各ユーザーの注文のリストを表示する必要がある場合はどうすればよいでしょうか。
<tr>...user-1 row...</tr>
<tr>
<td>Order id</td>
<td>Order date</td>
<td>Order amount</td>
</tr>
<tr>...user-1 order-1 row ...</tr>
<tr>...user-1 order-2 row ...</tr>
<!-- user-2 with orders
user-3 with orders
etc.
-->
したがって、selector タグでラップせずに、プロパティ*ngFor
からコンテンツのみを表示するために使用すると便利です。template
コンポーネントのテンプレートは次のように記述されます。
@Component({
selector: 'user-row',
template: `
<tr>
<td>{{ user.first_name }}</td>
<td>{{ user.last_name }}</td>
</tr>
<user-orders-list [orders]="user.orders">
`
})
そしてのテンプレート<user-order-list>
:
@Component({
selector: 'user-row',
template: `
<tr>
<td>Order id</td>
<td>Order date</td>
<td>Order amount</td>
</tr>
<user-order-row *ngFor="let order of orders" [order]="order">
`
})
のテンプレート<user-order-row>
:
@Component({
selector: 'user-order-row',
template: `
<tr>
<td>{{ order.id }}</td>
<td>{{ order.date }}</td>
<td>{{ order.amount }}</td>
</tr>
`
})