我正在开发一个日历应用程序,为方便起见,我在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天内完成此操作。呃。
我觉得自定义指令可以解决这个问题,但我不知道如何继续。这个问题还有其他解决办法吗?