我正在开发一个日历应用程序,为了方便起见,我正在 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 天。啊。
我觉得自定义指令可以解决这个问题,但我不知道如何进行。这个问题还有其他解决方案吗?