AngularJS:如何根据控制器范围更改ng-class三元运算符的值?

时间:2016-05-02 14:02:54

标签: javascript css angularjs angular-directive

我的指令控制器中有以下范围变量,我的范围被评估为变量的值为工作日或周末。如果是工作日,我需要将css类.weekDay设置为div,如果是周末,我需要将css类设置为.weekEnd。我在我的指令中使用的以下三元表达式对我不起作用?这里有什么问题,我可以在ng-class中评估我的控制器表达式吗?请帮助。

$scope.toDay = "Monday";
 or 
$scope.toDay ="Sunday"


<div ng-class="{toDay=='Sunday'? 'weekEnd':'weekDay'}"> 

4 个答案:

答案 0 :(得分:3)

您需要使用比较运算符===,因此您的代码应如下所示

<div ng-class="toDay === 'Sunday' ? 'weekEnd' : 'weekDay'"> 

答案 1 :(得分:2)

<div ng-class="[today === 'Sunday' ? 'weekend' : 'weekday']">

请注意[]而不是{}&amp; ===代替=

答案 2 :(得分:1)

试试这个:

$scope.toDay = "Monday";
 or 
$scope.toDay ="Sunday"


<div class="{{toDay==='Sunday'? 'weekEnd':'weekDay'}}"> 

答案 3 :(得分:0)

你实际上并不需要使用Tertiary运算符,你可以稍微重构并使用......

<div ng-app ng-init="toDay = 'Monday'">
<h1 ng-class="{'weekEnd': toDay == 'Sunday', 'weekDay' : toDay != 'Sunday'}">
      Test Text
  </h1>
</div>

或沿着那些线进行一些比较