如何使用angular中的布尔值true或false禁用ngClass中的div


displayData = [
{
status: 'CLOSED', ack: false
},
{
status: 'ESCALATED', ack: false
},
{
status: 'ACK', ack: false
},
{
status: 'ACK', ack: true
},
{
status: 'NEW', ack: true
}
]

我想在这里做的是,当状态为"NEW"并且他的ack为"true"时,不会禁用div。如果状态为"CLOSED"、"ACK"、"ESCALATED",即使它们的ACK为"false",也不会禁用禁用的div。即使状态为"ACK"且其ACK为"true",它也不会禁用

<div class="action-default"
[ngClass] = "!['CLOSED', 'ESCALATED', 'ACK', 'NEW'].includes(dataDisplayed?.status) ? 'disabled' : ''" >
<i nz - icon nzType = "close-circle" nzTheme = "outline" > </i>
Cancel
< /div>

dataDisplayedArray of Objects,因此您不能像访问dataDisplayed?.status那样访问属性status。在访问属性之前,您需要获取每个单独的对象。

根据你的解释,你需要检查statusask,但这里你只检查status

您的代码应该像

<div 
class="action-default"
*ngFor="let data of dataDisplayed"
[ngClass] = "((['CLOSED', 'ESCALATED', 'ACK'].includes(data.status) && data.ack) || (data.status === 'NEW' && !data.ack)) ? 'disabled' : ''" >
<i nz - icon nzType = "close-circle" nzTheme = "outline" ></i>
Cancel
</div>

相关内容

最新更新