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>
我有一个有 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>