2017-03-20 3 views
0

HALLO Ich habe folgende Taste (n):NgIf Innenrasterung Angular

<button *ngFor="let btn of _formBtn" [type]="(btn.type=='submit')?'submit':'button'" 
      class="btn btn-icon" 
      [ngClass]="btn.class" 
      (click) = "_btnClick(btn, _finalConfig, _formBtn)" 
      [disabled]="btn.disabled" 
      [hidden]="btn.hidden"> 
      <i *ngIf="btn.BtnType!='next'" [class]="btn.icon"></i> 
      <span>{{btn.label}}</span> 
      <i *ngIf="btn.BtnType=='next'" [class]="btn.icon"></i> 
     </button> 

Es funktioniert gut. Aber jetzt möchte ich die Logik so ändern, dass, wenn die btn.label wird "bestätigt", ich möchte eine andere Funktion anstelle von _btnClick Funktion aufrufen. Wie kann ich mein vorhandenes Klickereignis basierend auf der Bedingung ändern? wie zB: (click) = *ngIf="btn.label=='confirmed'"? _confirmBtnClicked(btn, _finalConfig, _formBtn) : "_btnClick(btn, _finalConfig, _formBtn);" Bin ruhig verwirrt Jungs. Irgendeine Idee, wie man das macht, Leute? Oder irgendwelche anderen besseren Vorschläge für mein Szenario? Vielen Dank im Voraus Jungs.

+2

Können Sie nicht versuchen, 1 Handler zu haben und fügen Sie hinzu, wenn innerhalb es notwendige Funktion zu nennen? – Rajesh

Antwort

1

Sie rufen können eine andere Methode aufrufen können, wo Sie für die gleiche wie überprüfen:

(click) = "_confirmedClick()" 

dann in Ihrer Komponente:

public _confirmedClick(){ 
    if(this.btn.label === "confirmed"){ 
     this._confirmBtnClicked(this.btn, this._finalConfig, this._formBtn); 
    }else{ 
     this._btnClick(this.btn, this._finalConfig, this._formBtn); 
    } 
} 
+0

Danke Jai! Dachte nicht so! – blackdaemon

+0

@blackdaemon Sie sind willkommen. – Jai

0

Erstellen Sie eine Methode wie clickMe() und übergeben Sie die btn.label darin. Dann nach dem Etikett wieder Sie verschiedene Methoden basierend auf dem Wert des btn.label

Vinod

Verwandte Themen