从html文件基于条件调用函数,而不使用* ngIf

时间:2019-03-26 06:12:41

标签: angular

我想根据条件在单个<input type="text" (focusout)="">中调用2个函数。 我不想使用*ngIf else条条件。

示例
component.ts文件中我已经声明了1个变量,例如

isCall = true;     
functionA(){}
functionB(){}

我的component.html文件如下

<input type="text" (focusout)="">

我想基于isCall事件中的(focusout)=""调用这两个函数。
假设isCall变量为true,那么我想调用functionA()否则为functionB()
如何根据条件调用这些函数?

4 个答案:

答案 0 :(得分:2)

您可以根据情况使用三元运算符来调用两个函数。

<input type="text" (focusout)="isCall ? functionA() : functionB() ">

Here is solution on stackblitz

答案 1 :(得分:1)

您可以使用三元运算符? :,并根据条件可以调用functionA()functionB(),如下所示。

component.html

<input type="text" (focusout)="isCall ?  functionA() : functionB()">

component.ts

 functionA() {
    console.log('HelloA');
  }

   functionB() {
    console.log('HelloB');
  }

Here is solution on stackblitz

希望这会有所帮助!

答案 2 :(得分:1)

  

解决方案1 ​​

<input type="text" (focusout)="isCall? functionA(): functionB()">
  

解决方案2

在component.ts中

myFunction() {
 if(isCall)
  functionA()
 else
 functionB()
}

在component.html中

<input type="text" (focusout)="myFunction()">

答案 3 :(得分:0)

在ts文件中,您可以使用以下功能

handleFocusOut(){
    if(isCall){
    functionA()
    }else {
    functionB()
    }  
}

并始终从html中调用 handleFocusOut()方法。

<input type="text" (focusout)="handleFocusOut()">