Angular - 在 属性 绑定中使用字符串变量访问对象属性

Angular - Access to object attribute with a string variable in property binding

我想使用字符串“attribute”作为键来访问“anim.animals”对象中字段的值。

“anim”是一个 Response 类型的对象,其中包含字符串“attribute”和一个动物类型的数组“animals”。

(你以后可以因为命名 类 和变量打我啊哈)

正如您从我正在遍历数组以访问动物参数的代码片段中看到的那样,其中一个参数由字符串“attribute”标识。

<div class="col-sm" *ngFor="let a of anim.animals">
           <a>{{a.name}}</a><br>
           <a *ngIf="feedback == 'Wrong'">{{a[attribute as keyof typeof animal]}}</a>
</div>

都试图用点访问它并以这种报告的方式(我在互联网上找到但还不太了解)出现错误:

你知道我如何解决这个问题吗(也许不会打乱一切)? 谢谢

如果属性是键名

<div class="col-sm" *ngFor="let a of anim.animals">
           <a>{{a.name}}</a><br>
           <a *ngIf="feedback == 'Wrong'">{{$any(a).attribute}}</a>
</div>

<div class="col-sm" *ngFor="let a of anim.animals">
           <a>{{a.name}}</a><br>
           <a *ngIf="feedback == 'Wrong'">{{a['attribute']}</a>
</div>

如果属性是一个包含键名的变量

<div class="col-sm" *ngFor="let a of anim.animals">
           <a>{{a.name}}</a><br>
           <a *ngIf="feedback == 'Wrong'">{{$any(a)[attribute]}</a>
</div>