2017-05-20 12 views
1

私はテキストとボタンのリストを作成しています。 クリックした機能でどのボタンがクリックされたのかを特定したい。ionic * ngForループでクリックされたボタンを特定する方法

HTML

<ion-list> 
    <ion-item ion-item *ngFor="let act of questions.test"> 
     {{act.quote}} 
     <ion-item> 
     <button large ion-button item-right (click)="SelectClicked()">Select</button> 
     </ion-item> 
    </ion-item> 
</ion-list> 

TS

this.questions = 
    { 
    "test":[ 
    { 
     "quote": "first row" 
    }, { 
     "quote": "second row" 
    }, { 
     "quote": "third row" 
    }, { 
     "quote": "fourth row" 
    } 
    ] 
    } 


SelectClicked(detail){ 
//please help 
// which button was clicked (1 to 4) ? 
    console.log("SelectClicked" + detail); 
} 
+0

あなたはselecteのインデックスを持つだけで気になる場合d要素では、SelectClicked(index)のように引数として 'index'を渡します – CODEkid

答えて

1

のような関数へのパラメータとして値を "行動する" 渡すことができますハンドラにイベントを渡すことによって実行することができます。あなたがevent.targetevent.srcElementまたはevent.currentTargetを使用してイベントから要素を取得することができます

<button (click)="SelectClicked($event)"></button> 

しかし、あなたはインデックスまたはあなたの配列の項目に沿って通過することを意味するならば、あなたはちょうどそのactオブジェクトに渡したり、ループにインデックスを追加することができます...

<ion-item ion-item *ngFor="let act of questions.test; let i = index"> 

...とパスオブジェクト上...

<button (click)="SelectClicked(act)"></button> 

...またはID

<button (click)="SelectClicked(i)"></button> 
0

あなたは私がしたいことを推測しています。この

<button large ion-button item-right 
    (click)="SelectClicked(act)">Select 
</button> 
関連する問題