在点击时发送* ngFor值作为参数

时间:2016-10-11 14:40:58

标签: angular typescript data-binding

我在Angular 2中制作了一个小应用程序,我正在显示一个包含一些数据的表格,当我点击我的桌子时,我想得到那些数据

以下是代码:

HTML模板:

<tr *ngFor="let users of usersdata; let i = index">
     <td (click)="data(users.username)">{{users.username}}</td>
     <td (click)="data(users.email)">{{users.email}}</td>
     <td (click)="data(users.id)">{{users.id}}</td>
     <td (click)="data(users.roleId)">{{users.roleId}}</td>
</tr>

这是我的组成部分:

data(data: string) {
    this.selectedParam.emit(data);
    console.log(data);
}

当我点击时,我收到此错误:

EXCEPTION: Error in .../userslist.component.html:22:16 caused by: self.parent._el_24 is not a function

3 个答案:

答案 0 :(得分:8)

使用[(ngModel)]将数据双向绑定到组件。如下所示

<td [(ngModel)]="users.username" (click)="data(users.username)">{{users.username}}</td>

也可以尝试

//$event will hold value and other reference.
data($event: any) {

}

您可以在[]和()表示法

上获得更多角度2侧的参考

答案 1 :(得分:2)

您需要在组件中创建一个公共数组。

public usersdata:any;

<tr *ngFor="let users of usersdata; let i = index">
 <td (click)="data(users.username)">{{users.username}}</td>
 <td (click)="data(users.email)">{{users.email}}</td>
 <td (click)="data(users.id)">{{users.id}}</td>
 <td (click)="data(users.roleId)">{{users.roleId}}</td>

} 现在您可以访问html模板

data(data: string) {
this.selectedParam.emit(data);
console.log(data);

data(datavalue: string) { 
  this.selectedParam.emit(datavalue); 
  console.log(datavalue); 

}

上面没有保持功能名称和参数名称相同,因为它可能会导致问题。更改参数的名称

import csv

filename = "no.csv"

fields = []             
rows = []              

with open(filename,'r') as csvfile:
  csvreader = csv.reader(csvfile)

  fields = csvreader.next()       
  for row in csvreader:          
    rows.append(row)

  for i in rows[0:2]:
      print i

  import datetime
  from datetime import timedelta
  import time

  d = datetime.datetime.strptime(rows[4][3],'\xa0%d/%m/%Y')
  print d.day 

  for j in range(len(rows)):
      d = datetime.datetime.strptime(rows[j][3],'\xa0%d/%m/%Y')
      print d.day

}

答案 2 :(得分:0)

请参阅EventEmitter documentation,您的自定义组件应基本上与示例相似,实现Output()指令和EventEmitter