2017-06-29 27 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

相關問題