在[ngClass]中传递函数作为条件-Angular 7

时间:2019-05-13 14:46:09

标签: angular

我想在我的[ngClass]条件内绑定一个函数的结果,但是它什么也没做。

HTML

<div [ngClass]="{hover': check(token.ids)}" *ngFor="let tokens of info.data">  

我试图从该函数返回一个布尔值,但没有任何反应,但是 当我将其记录在控制台中时,根据传递的元素,我会收到true或false值。

check(tokens) {
    tokens.forEach(token => {
      if (token.id === this.currentToken) {
        return true
      }
    });
  } 

2 个答案:

答案 0 :(得分:1)

 check(tokens) {
    let res = false;
    tokens.forEach(token => {
       if (token.id === this.currentToken) {
         res = true
       }
    });
    return res;
 } 

您的检查功能未返回值,它将返回未定义的值。因此,您可以通过在函数中声明返回值的方式来执行此操作。

答案 1 :(得分:0)

Short circuit Array.forEach like calling break

尝试一下

  check(tokens) {
      const match = false;
      tokens.forEach(token => {
        if (token.id === this.currentToken) {
          match = true
        }
      });
      return match;
   }