【发布时间】:2015-05-18 20:52:44
【问题描述】:
我正在尝试使用角度指令构建日历。
我有以下完美运行的指令:
angular.module('acDaySelectCalendar',[])
.directive('acMonth', function () {
return {
template: '<div class="monthcontainer"><table class="calendarmonth" width="210" border="0" align="center" cellpadding="0" cellspacing="0">\
<tbody><tr>\
<td class="mois" colspan="7">{{acDate | date:"MMMM yyyy"}}</td>\
</tr>\
<tr>\
<td>D</td>\
<td>L</td>\
<td>M</td>\
<td>W</td>\
<td>J</td>\
<td>V</td>\
<td>S</td>\
</tr>\
<tr ng-repeat="week in weeks track by $index">\
<td ng-repeat="day in week track by $index">{{day | date: "d"}}</td>\
</tr>\
</tbody></table></div>',
restrict: 'E',
scope:{
acDate: '@'
},
controller: 'acMonthController'
};
});
此控制器的指令为每个元素构建一个“weeks”数组,其中包含每周的天数数组,然后可以通过 ng-repeat 数周和天数来构建显示月份中的天数的表格。
下面显示的代码一切正常,但问题是当我尝试用以下角度指令替换内部 td 时:
angular.module('acDaySelectCalendar')
.directive('acDay',function() {
return {
template: '<td transclude></td>',
restrict: 'E',
transclude: true,
//transclude:true,
}
});
然后按以下方式更改 acMonth 指令以使用 ac-day 指令:
angular.module('acDaySelectCalendar',[])
.directive('acMonth', function () {
return {
template: '<div class="monthcontainer"><table class="calendarmonth" width="210" border="0" align="center" cellpadding="0" cellspacing="0">\
<tbody><tr>\
<td class="mois" colspan="7">{{acDate | date:"MMMM yyyy"}}</td>\
</tr>\
<tr>\
<td>D</td>\
<td>L</td>\
<td>M</td>\
<td>W</td>\
<td>J</td>\
<td>V</td>\
<td>S</td>\
</tr>\
<tr ng-repeat="week in weeks track by $index">\
<ac-day ng-repeat="day in week track by $index">{{day | date: "d"}}</ac-day>\
</tr>\
</tbody></table></div>',
restrict: 'E',
scope:{
acDate: '@'
},
controller: 'acMonthController'
};
});
在第二种情况下,tr 元素内不会显示任何内容。
知道会发生什么吗?
求救!!!
谢谢 黄鹂
【问题讨论】:
标签: angularjs angularjs-directive