【问题标题】:ng-class in not evaluatedng-class 未评估
【发布时间】:2014-08-19 16:40:38
【问题描述】:

考虑这个js代码:

  // class inside controller TODO: refactor
  $scope.$watch('concat.country', function(newValue) {
    if (highRisk.indexOf(newValue) !== -1) {
      alert(newValue + " is a high risk country");
      $scope.riskClass = "highRisk";
    } else if (mediumRisk.indexOf(newValue) !== -1) {
      alert(newValue + " is a medium risk country");
      $scope.riskClass = "mediumRisk";
    } else {
      $scope.riskClass = "";
    }
  });

带模板

 <div ng-class="{{riskClass}}" class="col-lg-10">

逻辑很好用。我可以在 Chrome 中看到 ng-class 设置为正确的值,但背景没有改变,元素检查器不显示类。

为什么不评估 ng-class? {{riskClass}} 不合法/不正确?

PS 我知道这段代码远非完美。

【问题讨论】:

  • ng-class="riskClass" 你不需要再包装在{{
  • 呃。 30 秒。非常感谢。想知道这是如何工作的 coderwall.com/p/r3_geg
  • 因为您列出的那篇文章继续包装在单个 {} 中,您可以在根据条件添加类时执行此操作。示例:ng-class="{active:contition}" - 在满足条件时分配活动类。
  • 文章中的第一个例子是误用。 {{active}} 只会被评估一次,当active 被更改时,永远不会再次被重新评估。或者它可能在过去有效,从那时起 angularjs 肯定发生了很大变化。

标签: javascript css angularjs class


【解决方案1】:

如果类名在字符串中,则不需要 ng-class...

<div class="col-lg-10 {{riskClass}}">

当您有一些要添加类的布尔条件时,您应该使用 ng-class。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多