[英]AngularJS: $scope.$watch two values that depend on each other
我有一个AngularJS应用,其日期范围的结束日期总是必须比开始日期晚11个月(总持续时间为12个月)。 用户需要能够进入视图并编辑开始或结束日期。 因此,如果他们编辑开始日期,则结束日期将调整为开始日期之后的11个月。 如果他们编辑结束日期,则开始日期会调整为结束日期之前的11个月。
问题在于,当这两个日期中的任何一个发生更改时,它们都会触发对服务器的AJAX调用,但是现在它的工作方式是,它们会触发两个调用,因为当一个日期更改时,另一个日期也会更改。
我正在尝试使用$scope.$watch('startDate')
和$scope.$watch('endDate')
来检测控制器中的更改,但是正在努力寻找一种方法来一次更改两个值,但只能触发一个AJAX服务器调用。
关于如何使两个日期保持一致的任何想法,但避免重复的AJAX调用和$scope.$watch()
循环?
感谢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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.