我有一个AngularJS应用程序,其日期范围的结束日期始终必须是开始日期后的11个月(总持续时间为12个月)。用户需要能够进入视图并编辑开始或结束日期。因此,如果他们编辑开始日期,结束日期将调整为开始日期后的11个月。如果他们编辑结束日期,则开始日期会调整为结束日期之前的11个月。
问题是,当这些日期中的任何一个发生变化时,它们会触发对服务器的AJAX调用,但是它现在的工作方式是,它们会触发两个调用,因为当一个日期发生变化时,另一个日期也会发生变化。
我正在尝试使用$scope.$watch('startDate')
和$scope.$watch('endDate')
来检测控制器中的更改,但我很难找到一种方法来同时更改这两个值,但只触发一个AJAX服务器调用。
有关如何将两个日期保持一致但避免重复的AJAX调用和$scope.$watch()
循环的任何想法?
答案 0 :(得分:0)
感谢BenFelda的建议,我能够使用g00fy的datepicker和ng-change
拼凑出一些我想要的代码。
查看:强>
<div ng-model="startDate" ng-change="startDateChanged()" date-picker="startDate" min-view="month"></div>
<强>控制器:强>
$scope.startDateChanged = function() {
console.log('the start date changed!');
console.log($scope.startDate);
//make AJAX call, which only happens once
}