当模型发生变化时,Angular ng-class三元组不会更新我的模板

时间:2016-02-19 17:55:14

标签: angularjs ternary-operator ng-class

当我的页面最初加载时,使用此ng-class三元运算符正确设置类:

<div ng-class="{{day.current}} ? 'currPeriod' : 'notCurrPeriod'">
    {{day.date | date:"d"}}
</div>

注意 - 此html位于模板中,由指令使用,在ng-repeat中生成

{{day.date | date:"d"}}的值更新,但未应用该类。

奇怪的是,我的开发工具显示出一种差异:

enter image description here

1 = true所以它应该评估为currPeriod,但元素类仍然是notCurrPeriod。我在模态更改结束时尝试了$scope.$apply(),但这并没有奏效。 如何让模板重新运行并应用此三元组?或者有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

<div ng-class="{'currPeriod': day.current, 'notCurrPeriod': !day.current}">
  {{day.date | date:"d"}}
</div>

ng-class不能以这种方式工作,使用对象语法来实现你想要的东西,或者你可以在当天不在当前时期的时候设置默认样式,并在它被应用时,它会缩短你的ng-class语句