私はカレンダー アプリに取り組んでおり、便宜上、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 日間行う必要があります。うーん。
カスタム ディレクティブでこれを解決できると思いますが、どうすればよいかわかりません。この問題に対する他の解決策はありますか?