首页 > 解决方案 > 角度 *ngIf 中的 AND 运算符计算结果为 true,而它不应该

问题描述

ngx-datatable我在角度内有以下内容:

<button ngbDropdownItem 
 *ngIf="(row['REQUEST_STATUS_TYPE_NO'] == 5 && ['ENROLL_TAX_PAYER'] | authority)">
                            {{ 'M.SUBMIT_FOR_SYSTEM_CHECK' | translate }}
  </button>

在上面的代码中,ENROLL_TAX_PAYER条件评估为 true 它应该这样做,因为用户拥有该权限。row['REQUEST_STATUS_TYPE_NO'] == 5如果如果单独检查它{{row['REQUEST_STATUS_TYPE_NO'] == 5}}并且实际上应该检查,则该部分评估为假。问题是,当组合时,它的计算结果为 true,并且按钮会显示,而它不应该显示。我究竟做错了什么?。当我让它像(row['REQUEST_STATUS_TYPE_NO'] == 5) && (['ENROLL_TAX_PAYER'] | authority)它一样工作时。它不应该在第一种情况下工作吗?我的意思是因为REQUEST_STATUS_TYPE_NO不是五,并且操作员是AND条件应该评估为假。

标签: angulartypescriptngx-datatable

解决方案


如果没有括号,TS 会以这种方式查看您的情况。它首先解决管道,然后解决 &&。

row['REQUEST_STATUS_TYPE_NO'] == 
(5 && (['ENROLL_TAX_PAYER'] | authority))

推荐阅读