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