Angular *ngIf 在外部 JSON 文件中具有可变条件

Angular *ngIf with variable condition in external JSON file

我正在尝试根据从外部 JSON 文件获得的变量向 div 添加 ngIf 条件。

这是 JSON 文件的样子:

{
    steps: [
        {
            step: 'Step 1',
            condition: "selectedValue === 'village'"
        },
        {
            step: 'Step 2',
            condition: "language === 'english'"
        }
    ]
}

所以我想要实现的是:

<div *ngFor="let step of steps">
    <ng-container *ngIf="step.condition">
        {{ step.step }}
    </ng-container>
</div>

但我认为因为条件是字符串值,ngIf 没有正确处理它。

我什至尝试过字符串插值类型的东西,但是唉

condition: "${language} === 'english'"

有没有什么办法可以达到这个预期的效果。

您必须评估 javascript 代码并执行它。例子

HTML

<div *ngFor="let step of steps">
  <ng-container *ngIf="evaluate(step.condition)">
    {{ step.step }}
  </ng-container>
</div>

TS

evaluate(con: string) {
  return eval(con);
}