0

我正在尝试使用 ng-class 在 ng-repeat 中应用条件格式。条件应基于对象数据字符串的评估。

我试图让他的代码将粗体应用于第三项。我已经尽力尝试$eval$parse无济于事。

  <body ng-app="examsApp">
    <div ng-controller="ExamsController as examsList">
      <div ng-repeat="exam in examsList.exams">
        <span ng-repeat="levelnum in exam.levels.levelnums" ng-class="{ 'bold': $eval(exam.levels.evalby[$index]) }">
          {{levelnum}}
        </span>
      </div>
    </div>
  </body>


var data = [
    {
        "id": "exam1",
        "text": "Exam 1",
        "levels":
            {
                "levelnums": ['2', '3', '4', '5'],
                "evalby": ['$scope.bold === 0', '$scope.bold ==== 1', '$scope.bold === 2', '$scope.bold === 3']
            }
    }
]

angular.module('examsApp', [])
    .controller('ExamsController', ['$scope', function ($scope) {
        var examsList = this;
        examsList.exams = data;

        $scope.bold = 2;
}])

Plunkr

4

1 回答 1

1

您的 plunk 有一些小问题,其中两个可以通过打开开发者控制台找到:

  1. 你不包括angularJS.
  2. 您正在尝试ng-repeat超出分配examsList.exams的.divexamList controller
  3. eval在数组中最后一个值的末尾有一个额外的 ')' 。
  4. 数组中的所有规则eval当前都解析为false.
  5. 您没有定义类的css规则bold

Plunkr

于 2018-04-13T02:38:13.617 回答