NgIf里面单击Angular

时间:2017-03-20 05:47:47

标签: javascript 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>

工作正常。但现在我想修改逻辑,以便每当btn.label变为'已确认'时,我想调用另一个函数而不是_btnClick函数。如何根据条件修改现有的点击事件?比如前:(click) = *ngIf="btn.label=='confirmed'"? _confirmBtnClicked(btn, _finalConfig, _formBtn) : "_btnClick(btn, _finalConfig, _formBtn);"我很安静。知道如何做那些家伙吗?或者对我的方案有任何其他更好的建议?先谢谢你们。

2 个答案:

答案 0 :(得分:1)

您可以调用另一种方法来检查相同内容:

(click) = "_confirmedClick()" 

然后在你的组件中:

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

答案 1 :(得分:0)

创建一个方法,例如clickMe(),并在其中传递btn.label。 然后根据标签,您可以再次根据btn.label

的值调用不同的方法

维诺德