当在Angular 2中使用ngFor时,有没有可能不使用组件选择器标签来包装组件内容?
When using ngFor in Angular 2, is it possible to not wrap component content with component selector tag?
我正在尝试显示用户表。每个<tr>
标签由UserRowComponent
描述:
@Component({
selector: 'user-row',
template: `
<tr>
<td>{{ user.first_name }}</td>
<td>{{ user.last_name }}</td>
</tr>
`
})
For循环遍历用户,我使用:
<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
,并从<user-row>
模板中删除包装<tr>
标签。
但是如果我需要在同一个表中显示每个用户的订单列表,就在<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.
-->
所以这将是伟大的使用*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>
`
})
您可以在这里使用模板标记。当然,样式和格式是你想要的。这可能没有意义,所以我为你分叉并修改了一个plunk。
<table>
<template let-user ngFor [ngForOf]="users">
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th></th>
</tr>
</thead>
<tr>
<td>{{user.firstName}}</td>
<td>{{user.lastName}}</td>
<td></td>
</tr>
<tr>
<th>ID</th>
<th>Date</th>
<th>Amount</th>
</tr>
<tr *ngFor="let order of user.orders">
<td>{{order.id}}</td>
<td>{{order.date}}</td>
<td>{{order.amount}}</td>
</tr>
</template>
</table>
相关文章:
- 在<页眉>标签
- React重新渲染但未显示正确的组件
- 不能从angular2中的子组件指定父组件中的数组
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- 带有组件标签的 VueJS 路由不起作用
- Riot.js使用 css 库作为标签或组件
- 当 ASPxPageControl 选项卡页位于两个 ASPxPageControl 标签页中时,我无法访问该组件
- 如何在 Web 组件中设置标签的内部文本
- 如何更新p的标签:在primefaces中ajax调用后,在不关闭组件的情况下选择CheckboxMenu
- ReactJS:如何添加不支持的React组件(JSX标签)
- 无法将谷歌地图集成到标签组件中
- 注入样式标签+ angular组件计时
- 如何在标签中连接Primefaces UI和JavaScript组件
- 在reactjs的testtils中找不到带标签的组件
- 将引导标签包装到Ember组件中
- 使用标签名插入的组件不工作
- Angular2 :渲染一个没有包装标签的组件
- 单击标签不聚焦自定义元素(Web 组件)
- 当在Angular 2中使用ngFor时,有没有可能不使用组件选择器标签来包装组件内容?
- 在react组件中从HTML文件中的脚本标签访问变量