2017-06-29 26 views
0

我试着在* ngFor传递对象到另一个组件,但只传递了表中的最后一个对象,但是应该显示被单击的对象,如何解决这个问题问题?通过在* ngFor中的另一个组件中指定变量值2

<tr data-toggle="control-sidebar" *ngFor="let user of pagedItems"> 
     <td><control-sidebar [user]="user"> 
    </control-sidebar>{{ user.name }}</td> 

以及另一个只显示最后一个表格行的组件视图。

+0

为什么你传递'userDetails'而不是'user'对象? – Abrar

+0

看到这个例子。它展示了如何将'* ngFor'循环中的点击对象传递给另一个组件。 https://angular.io/generated/live-examples/toh-pt3/eplnkr.html – Nehal

回答

0

当你的user数据绑定到control-sidebar

[user]="userDtails",问题就出在这里。

修改代码:

<tr data-toggle="control-sidebar" *ngFor="let user of pagedItems"> 
     <td (click)="getUser(user)"><control-sidebar [user]="user"> 
    </control-sidebar>{{ user.name }}</td> 

确保您已在组件类中定义的方法getUser

请注意,我已设置:[user]="user"。如果您想要将user对象传递给control-sidebar

现在一切都应该正常工作。

编辑

既然你想显示被点击就可以绑定到(click)处理的方法和通过user对象user。例如:

(click)="showUser(user)" 
+0

哦,对不起,我在写邮件时犯了一个错误。我纠正了它。在我的代码中,它是同一个绑定,我得到了上面描述的结果 – llotall

+0

只要点击'td'就想要'user'对象,对吗? – Abrar

+0

可能不起作用,因为我在你的例子中使用table insted li吗? – llotall

相关问题