AngularJS:$ scope。$监视两个相互依赖的值

时间:2015-03-27 18:45:52

标签: javascript angularjs angularjs-scope

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

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

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

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

1 个答案:

答案 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
}