如何在 angular 9 ngIf 条件中的两个字符串之间使用连字符 (-)

How to use Hyphen(-) between two strings in angular 9 ngIf condition

我在 html 中有一个 If 条件来检查访问特定页面的权限:

    *ngIf="permission?.product-report?.list_product_report"

product-report 是一个静态名称,直接给出条件

当我执行它时,出现如下错误:

    Property 'report' does not exist on type 'ProductComponent'.

为什么会出现这个错误?有人请帮助我..

您可能不得不使用混合点符号和括号符号的不雅解决方案

*ngIf="permission['product-report']?.list_product_report"

当定义了 'product-report' 而没有定义 list_product_report 时,上述解决方案可能会引发错误。我不确定将安全导航运算符附加到使用方括号表示法获取的 属性 时的行为。在这里你可能不得不放弃安全导航运算符并手动检查每个 属性。

*ngIf="permission 
  && permission['product-report']
  && permission['product-report']['list_product_report']"

您需要使用 方括号 表示法才能得到 key

例如

  <div *ngIf="permission && permission['product-report'] && permission['product-report']['list_product_report']""></div>