AngularJS:$scope$注意两个相互依赖的值



我有一个AngularJS应用程序,其日期范围为结束日期必须在开始日期后11个月(总持续时间为12个月)。用户需要能够进入视图并编辑开始日期或结束日期。因此,如果他们编辑开始日期,结束日期将调整为开始日期后的11个月。如果他们编辑结束日期,开始日期将调整为结束日期前11个月。

问题是,当这两个日期中的任何一个更改时,它们都会触发对服务器的AJAX调用,但按照现在的工作方式,它们会触发两个调用,因为当一个日期更改时,另一个日期也会更改。

我正在尝试使用$scope.$watch('startDate')$scope.$watch('endDate')来检测控制器中的更改,但很难找到一种方法来同时更改这两个值,但只能触发一个AJAX服务器调用。

关于如何保持两个日期一致,但避免重复的AJAX调用和$scope.$watch()循环,有什么想法吗?

多亏了BenFelda的建议,我能够使用g00fy的日期选择器和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
}

最新更新