1

我正在开发一个日历应用程序,为了方便起见,我正在 Sinatra 应用程序中渲染(较大的)DOM。每当您单击日历中的某一天时,该天就会在模型中切换为“已标记”。

这很简单,没有太多代码:

<body ng-controller="CalendarCtrl" ng-click="toggle_day($event)">

并在CalendarCtrl

$scope.toggle_me = function($event) {
  var target = angular.element($event.target);
  if (target.attr("data-date")) {
    $scope.toggle(target.attr("data-date"));
  }
}

$scope.toggle = function(date) {
  $scope.days[date] = 1 - ($scope.days[date] | 0);
}

我遇到的问题是将数据返回给 DOM 元素。我想为模型中标记的所有日期添加一个“活动”类。

我可以用乏味的方法做到这一点:

<td data-date="20130101" ng-class="'active' if day is marked">1</td>

ng-class(不要介意表达式中的伪代码)但我必须这样做 365 天。啊。

我觉得自定义指令可以解决这个问题,但我不知道如何进行。这个问题还有其他解决方案吗?

4

0 回答 0