随着模型的变化,Angular ng-class 三元组不会更新我的模板

Posted

技术标签:

【中文标题】随着模型的变化,Angular ng-class 三元组不会更新我的模板【英文标题】:Angular ng-class ternary doesn't update my template as the model changes 【发布时间】:2016-06-01 09:44:06 【问题描述】:

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

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

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

day.date | date:"d" 当天的值更新,但类未应用。

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

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

【问题讨论】:

【参考方案1】:
<div ng-class="'currPeriod': day.current, 'notCurrPeriod': !day.current">
  day.date | date:"d"
</div>

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

【讨论】:

以上是关于随着模型的变化,Angular ng-class 三元组不会更新我的模板的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS的ng-class切换class

angular的ng-class

javascript Angular ng-class

angular js ng-class 将表达式显示为类而不是处理它

AngularJS:范围值改变,但并不总是适用于 ng-class

Angular.JS中使用$watch监听模型变化