按钮单击在 angular2 中显示相同的数据
Button click showing same data in angular2
我试图用 table 中各行的详细信息填充 bootstrap modal
。模式显示正常,但它 填充 只有 第一行数据 单击任何按钮。
这是一个link:https://plnkr.co/edit/3tl6S9CuGCv8VxXsOq7Y?p=preview
我所做的是 property binded
组件的 pass
@Input 装饰器中的 data
值,您可以在下面的代码中使用(请参阅 plunker 以了解更多信息组件):
<div class="container">
<h2>Basic Table</h2>
<p>The .table class adds basic styling (light padding and only horizontal dividers) to a table:</p>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Email</th>
<th></th>
</tr>
</thead>
<tbody>
<tr *ngFor='let data of datas'>
<td>{{data.name}}</td>
<td>{{data.age}}</td>
<td>{{data.email}}</td>
<td><detail-emp [pass]='data'></detail-emp></td>
</tr>
</tbody>
</table>
</div>
现在我相信当我将 *ngFor
中的 datas
中的单个 data
传递给它的组件时,应该传递相应的行数据.但事实并非如此。单击任何模式按钮时的模式仅显示第一行数据。
如何确保只有单击行的数据显示在模式中,而不总是第一行的数据。
提前致谢。
试试这个:
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" [attr.data-target]="'#exampleModal_' + pass.id ">
Show Data
</button>
<!-- Modal -->
<div class="modal fade" id="exampleModal_{{pass.id}}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Employee Detail</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Name : {{pass.name}}</p>
<p>Age : {{pass.age}}</p>
<p>Email : {{pass.email}}</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
问题出在您的按钮和模式 ID 中。您需要为每一行中的每个模式设置一个不同的 ID (exampleModal_{{pass.id}}) .. 然后附加按钮每个生成的 ID ([attr.data-target]="'#exampleModal_' + pass.id ")
..你总是打开相同的模态..希望它有帮助
我试图用 table 中各行的详细信息填充 bootstrap modal
。模式显示正常,但它 填充 只有 第一行数据 单击任何按钮。
这是一个link:https://plnkr.co/edit/3tl6S9CuGCv8VxXsOq7Y?p=preview
我所做的是 property binded
组件的 pass
@Input 装饰器中的 data
值,您可以在下面的代码中使用(请参阅 plunker 以了解更多信息组件):
<div class="container">
<h2>Basic Table</h2>
<p>The .table class adds basic styling (light padding and only horizontal dividers) to a table:</p>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Email</th>
<th></th>
</tr>
</thead>
<tbody>
<tr *ngFor='let data of datas'>
<td>{{data.name}}</td>
<td>{{data.age}}</td>
<td>{{data.email}}</td>
<td><detail-emp [pass]='data'></detail-emp></td>
</tr>
</tbody>
</table>
</div>
现在我相信当我将 *ngFor
中的 datas
中的单个 data
传递给它的组件时,应该传递相应的行数据.但事实并非如此。单击任何模式按钮时的模式仅显示第一行数据。
如何确保只有单击行的数据显示在模式中,而不总是第一行的数据。
提前致谢。
试试这个:
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" [attr.data-target]="'#exampleModal_' + pass.id ">
Show Data
</button>
<!-- Modal -->
<div class="modal fade" id="exampleModal_{{pass.id}}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Employee Detail</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Name : {{pass.name}}</p>
<p>Age : {{pass.age}}</p>
<p>Email : {{pass.email}}</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
问题出在您的按钮和模式 ID 中。您需要为每一行中的每个模式设置一个不同的 ID (exampleModal_{{pass.id}}) .. 然后附加按钮每个生成的 ID ([attr.data-target]="'#exampleModal_' + pass.id ") ..你总是打开相同的模态..希望它有帮助