ng-class 基于变量值

ng-class based on variable value

我有一个有 4 个可能值的变量,我想为前 3 个变量添加一个 class,为前 2 个变量添加一个 class,并且要求有时会更改为一个 class对于两个可能的值和另一个对于其他值

所以如果我给

<span ng-class="{'yes' : provisioned=='active',
    'yes': provisioned=='cannot_delete_edit',
    'no': provisioned=='cannot_delete_edit_upload',
    'no': provisioned=='inactive'}" class="flag">
</span>

无法正常工作我该如何解决

您应该让每个 class 只列出一次:

<span ng-class="{'yes': provisioned=='active' || provisioned == 'cannot_delete_edit', 'no': provisioned=='cannot_delete_edit_upload' || provisioned=='inactive', 'flag': true}"></span>

如果您的跨度只有两个选项,您可以改用这个:

<span ng-class="(provisioned=='active' || provisioned == 'cannot_delete_edit') ?
                'yes' : 'no'">...</span>

但这仍然会在 HTML 中留下硬编码值。相反,我建议将数据留在控制器中:

$scope.provisioned = (provisioned=='active' || provisioned == 'cannot_delete_edit');

然后使用

<span ng-class="provisioned ? 'yes' : 'no'">...</span>