![](/img/trans.png)
[英]In angular 2 and ionic 2 *ngfor, if i click on any one element it reflect on all?
[英]ngFor and (click) not working in Ionic 2 & Angular 2
當迭代ngFor的項目數組時,(click)事件無法附加到每個列表項,由於某種原因它只是沒有附加,當我點擊每個列表項時,該函數不會被觸發。
這是列表的HTML:
<ion-list class="queue-page--actions__haircut__tab-open" radio-group *ngIf="haircutTab" [(ngModel)]="selectedCut">
<ion-list-header class="queue-page--actions__haircut__tab__header">
Select a cut
</ion-list-header>
<ion-item *ngFor="let item of getCuts()" (click)="open($event, item)">
<ion-label>{{item.name}}</ion-label>
<ion-label>£{{item.price}}</ion-label>
<ion-radio checked="{{item.name == selectedCut}}" value="{{item.name}}"></ion-radio>
</ion-item>
</ion-list>
獲取剪切是頁面控制器上的函數(this.cuts是類型數組並返回json對象的數組):
public getCuts(){
return this.cuts;
}
最后,open()函數如下:
public open(event, item){
alert("Clicked");
console.log(item)
}
無法弄清楚這里出了什么問題,也許是對范圍問題的懷疑,但實際上並不確定。
試試這樣吧
<ion-item *ngFor="let item of cuts" (click)="open(item)">
:
</ion-item>
感謝Ionic 2論壇上的這篇文章 ,我找到了解決這里提出的問題的方法。
我沒有使用(click)
,而是在ion-radio
元素上使用(ionSelect)
。 這里可以看到一個例子:
<ion-item *ngFor="let item of cuts" (click)="open(item)">
<ion-label>{{item.name}}</ion-label>
<ion-label>£{{item.price}}</ion-label>
<ion-radio (ionSelect)="cutChanged(item.name)" checked="{{item.name == selectedCut}}" value="{{item.name}}"></ion-radio>
</ion-item>
控制器上cutChanged()的函數是這樣的:
cutChanged(cut){
alert(cut);
}
此實現現在可用,並觸發點擊事件。 也許有些不尋常的單選按鈕如何在Ionic中工作?
您的getCuts()
方法不是必需的。 調用open()
函數時無需傳遞事件。 open()
方法中也缺少分號。 最終守則:
<ion-list class="queue-page--actions__haircut__tab-open" radio-group *ngIf="haircutTab" [(ngModel)]="selectedCut">
<ion-list-header class="queue-page--actions__haircut__tab__header">
Select a cut
</ion-list-header>
<ion-item *ngFor="let item of cuts" (click)="open(item)">
<ion-label>{{item.name}}</ion-label>
<ion-label>£{{item.price}}</ion-label>
<ion-radio checked="{{item.name == selectedCut}}" value="{{item.name}}"></ion-radio>
</ion-item>
</ion-list>
open()函數將是:
public open(event, item){
alert("Clicked");
console.log(item);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.