在 ng-class 中组合三元运算符和相等语句

Combining ternary operator and equality statements in ng-class

我有一个要素: <div ng-class="a ? 'class1' : 'class2'"></div> 我需要向它添加另一个 ng-class 语句 ng-class="class3: b !== c"。 如何将 ng-class 语句组合在一起。 <div ng-class="{a ? 'class1' : 'class2, class3: b !== c"></div><div ng-class="(a ? 'class1' : 'class2') + ' ' + (class3: b !== c)"></div> 都不是 似乎工作。请指教

我认为你可以在没有像这样的三元运算符的情况下做到这一点。

<div ng-class="{'class1' : a, 'class2' : !a, 'class3': b !== c }"></div>

var app = angular.module('exApp', []);

app.controller('ctrl', function($scope){
$scope.a = 1;
$scope.c = 10;
$scope.b = 89;
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.min.js"></script>
<style>
.class1{
font-size:18px;
}
.class2{
color:orange;
}
.class3{
color:blue;
}
</style>
<body ng-app="exApp" ng-controller="ctrl">
<p ng-class="a ? 'class1' : 'class2'">Hi..Used Ternary Operator</p>
<p ng-class="{'class3': b !== c, 'class1' : !a, 'class2':a, }">Hi!...Without Ternary Operator</p>
</body>

ng-class=" {className1: checkIftrue, className2: otherCondition}" 

我对 ng-class 的首选语法如下,因为它明确说明了要添加的 classes,而无需使用三元运算符:

<div ng-class="{'class1' : a, 'class2' : !a, 'class3': b !== c }"></div>

如果你想使用三元,你可以这样做:

<div ng-class="(a ? 'class1' : 'class2') + ' ' + (b !== c ? 'class3': '' )></div>

您的解决方案无效,因为您试图混合使用 2 种不同的语法(有和没有大括号)。