我正在使用Material Design在AngularJS中创建旅游预订系统。
游览是通过ng-repeat
生成到DOM中的。每个tour
对象都包含有关此巡视的可用日期的信息。我需要将包含此信息的tour
对象发送到md-date-filter函数,但是我不知道该怎么做。
HTML:
<div ng-repeat="tour in tours">
<md-datepicker
ng-model="tour.group.selectedDate"
md-min-date="booking.visit.dateStart"
md-max-date="booking.visit.dateEnd"
md-date-filter="disableDepDates"
></md-datepicker>
</div>
这是日期过滤器功能:
$scope.disableDepDates = function(date) {
console.log(date);
//Check date here and return true if date is ok
};
问题是,每当我在HTML中执行md-date-filter="disableDepDates(tour)"
时,date
过滤器对象都会丢失。
谢谢!
编辑
我还注意到,当我使用md-date-filter="disableDepDates(tour)"
时,只要我关注任何表单元素等,disableDepDates()
函数都会在页面加载时自发运行。默认情况下,md-date-filter
将如下所述:
https://material.angularjs.org/latest/api/directive/mdDatepicker
答案 0 :(得分:0)
<md-datepicker
ng-model="2019-05-06"
md-min-date="2019-04-01"
md-max-date="2019-05-15"
md-date-filter="disableDepDates"
></md-datepicker>
,我们只有['2019-04-05','2019-04-06','2019-05-06','2019-05-10']可用 所以在脚本中我们应该有类似的
$scope.disableDepDates = function(date) {
var day = date.getFullYear() + '-' + ('0' + date.getMonth()).substr(-2) + '-' + ('0' + date.getDate()).substr(-2);
if(['2019-04-05','2019-04-06', '2019-05-06', '2019-05-10'].indexOf(day)!=-1)
return day;
};
});