2017-03-01 48 views
0

有在組件的模板ngFor循環:如何將ngFor-loop的當前項目傳遞給事件的回調?

@Component({ 
    template:' 
    <div *ngIf="List"> 
     <div *ngFor="let item of List" (click)="onSelect(item)"> 
     ... 
    </div> 
    </div> ' 
}) 
export class ListComponent implements OnInit { 
    List: MyCustomItem[]; 
    ngOnInit() { 
    //load List from server 
    } 

    onSelect(item: MyCustomItem) {...} 
} 

所以我想打電話給ONSELECT回調時,在元素上的用戶點擊,並通過必要MyCustomItem例如把它作爲參數。但是,這段代碼不工作(onSelect獲取未定義)。我該怎麼做?

+0

請發表更多代碼。 「List」是什麼樣的?這通常只是起作用。 –

+0

@GünterZöchbauer,我已更新我的問題 – Mergasov

+2

應該工作。 。 ..。 。 。 –

回答

2

通常情況下,該代碼應該可以正常工作,但前提是您正確地從服務器獲取List數據。

ONSELECT得到了一個未定義」:

這意味着你的列表是空的。確保您從List服務獲取數據。

正如您在ngOnInit()函數中的意見稿中所建議的那樣,我們可以對此進行故障排除。如果您使用的是服務,請將代碼片段發佈到您的服務中,負責檢索列表。

+0

你幾乎是正確的。我正確加載List的項目,但是MyCustomItem的我的typescript屬性是無效的(即與服務器端模型不同),所以onSelect無法將屬性從server-model綁定到MyCustomItem實例的參數。 – Mergasov

+0

哦,對不起!也許「正確地從您的服務器獲取列表數據」過於寬泛,我應該更加明確。很高興現在正在工作! – OmarIlias

相關問題