按钮单击在angular2中显示相同的数据

时间:2017-02-16 11:44:41

标签: twitter-bootstrap angular bootstrap-table ngfor angular-components

我尝试使用表中各行的详细信息填充引导程序modal。模态显示正常,但点击任何按钮第一行数据

这是一个链接:https://plnkr.co/edit/3tl6S9CuGCv8VxXsOq7Y?p=preview

我所做的是property binded组件data @Input装饰器中的pass值,如下面的代码所示(请参阅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>

现在我认为,当我将data中的datas个人*ngFor传递给其组件时,应传递相应的行数据。但事实并非如此。单击任何模态按钮时的模态仅显示第一行数据。

如何确保只有点击行中的数据显示在模态中,而不是第一行的数据。

提前致谢。

1 个答案:

答案 0 :(得分:2)

试试这个:

<!-- 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">&times;</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”) ..你是开放的,总是相同的模态..希望它有帮助