You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么我的Angular中ngIf绑定的条件函数始终返回错误?

问题原因
  • 你的recurso方法未定义入参:模板中调用时已经传入了当前遍历项的dato.tipoGasto值,但方法内部没有接收该参数,反而直接读取this.dataRoute.tipoGasto
  • dataRoute是数组类型:你在模板中使用*ngFor="let dato of dataRoute"遍历该数组,数组本身不存在tipoGasto属性,因此读取到的值永远为undefined,两个判断条件都无法命中,始终返回错误提示。
修复方案

首先修改TS文件中的recurso方法,增加入参接收模板传递的tipoGasto值,直接用入参做判断:

recurso(tipoGasto: string) {
    if(tipoGasto === "Inversión"){
      return "[10] RECURSOS CORRIENTES"
    }
    if(tipoGasto === "Funcionamiento"){
      return "[11] OTROS RECURSOS DEL TESORO"
    }
    else {
      return " Error! "
    }
  }

模板部分的逻辑不需要修改,原本的传参逻辑是正确的。


额外优化建议:可以将映射关系抽为常量对象,代码更简洁易维护

// 提前定义映射关系
private readonly GASTO_MAPPING: Record<string, string> = {
  'Inversión': '[10] RECURSOS CORRIENTES',
  'Funcionamiento': '[11] OTROS RECURSOS DEL TESORO'
}

recurso(tipoGasto: string): string {
  // 不存在匹配则返回错误
  return this.GASTO_MAPPING[tipoGasto] ?? ' Error! '
}

内容的提问来源于stack exchange,提问作者Aragorn8806

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 04:06:04