簡體   English   中英

如何在沒有ngClick的情況下將值作為參數傳遞給Angular2中的onclick內的函數調用?

[英]How to pass values as parameters to a function call inside onclick in Angular2 without ngClick?

Angular2:我試圖將*ngFor循環中的值作為參數傳遞給我的錨標記上的(click)屬性(因為出於安全原因不允許在onclick上調用函數)事件。

模板代碼:

<div *ngFor='let artist of artists'>
   <a (click)="alert({{artist.artist_id}})" href="#">{{artist.artist_name}}</a>
</div>

編譯時間錯誤:

Got interpolation ({{}}) where expression was expected in [alert({{artist.artist_id}})]

問題:

如何將藝術家的值傳遞給函數調用(click)

任何/所有幫助表示贊賞! :)

在您的情況下,您不需要雙花括號,因為您將變量傳遞給事件綁定單擊屬性中的函數,因此您可以刪除這些大括號,它將按預期工作:

<div *ngFor='let artist of artists'>
   <a (click)="alert(artist.artist_id)" href="#">{{artist.artist_name}}</a>
</div>

根據相關文檔 ,您只需在HTML元素標記之間和屬性賦值中插入值時使用插值(不要與事件/屬性綁定混淆)。

例如,您需要對此直接src屬性賦值使用插值,否則該值將被解釋為字符串:

<img src="{{pathUrl}}" />

但是,如果您要使用屬性綁定 (即[src]而不是src ),它將被視為變量並且不需要插值:

<img [src]="pathUrl" />

這同樣適用於您的情況下的事件綁定

換句話說,正如Günter在上面的評論中所說 ,你永遠不需要使用事件/屬性綁定(即, () / [] / [()] )和變量插值(即雙花括號) , {{}} )。

只需刪除插值並調用alert(artist.artist_id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM