カレンダーアプリがあります。初期化後、すべてが正しく機能しています。問題は、モデル (月) を変更した後、新しく作成された要素に対してディレクティブが更新されないことです。
ビュー部分:
<li class="day" ng-repeat="n in [] | range:month.daysInMonth()">
<span class="day-number" calendar-day="{{ n }}-{{ month.format('MM-YYYY') }}">{{ n }}</span>
</li>
ディレクティブ:
directive('calendarDay', ['month', function (month) {
return function (scope, element, attrs) {
scope.$watch(month, function (value) {
var currentDate = moment(attrs.calendarDay, "DD-MM-YYYY");
element.text(currentDate.format('DD-MM-YYYY'));
});
};
}]);
モデルmonth
は、アプリで次のように宣言されたモデルです。
value('month', moment());
コードは次のとおりです。http://jsfiddle.net/EEVGG/11/
ご覧のとおり、コードの月と年の部分は変更されていませんが、calendar-day
属性の値が正しいため変更されるはずです。