javascript - 当第一个日期选择器中的日期在第二个日期选择器之后设置时更新日期选择器( Angular )中的日期

标签 javascript angularjs datepicker watch

我正在使用两个日期选择器

<input type="text" class="form-control" datepicker-popup="{{format}}" ng-model="dt"
                     is-open="datepicker.dt" min-date="minDate" max-date="maxDate1" show-weeks="false" ng-required="true"
                     datepicker-options="dateOptions" show-button-bar="false"/>

<input type="text" class="form-control" datepicker-popup="{{format}}" ng-model="dt2"
                     is-open="datepicker.dt2" min-date="minDate" max-date="maxDate2" show-weeks="false" ng-required="true"
                      show-button-bar="false" />

我将 minDate 设置为今天,将 dt 和 dt2 分别设置为从今天算起的 2 周和 3 周。现在我希望第二个日期选择器依赖于第一个日期选择器,反之亦然。如果第二个日期选择器的日期在第一个日期之前的某个时间选择,则第一个日期选择器的日期应立即将其日期更改为为第二个日期选择器选择的同一天。此外,如果第一个日期选择器的日期在第二个日期之后选择,则第二个日期选择器应自动更改为与第一个日期选择器所选日期相同的日期。我考虑过使用 $watch 函数。但这似乎不起作用。

$scope.dt=Datepicker.daysToAdd();

为我服务:

DateSettings.daysToAdd=function(){
        newDate = newDate.setDate(newDate.getDate()+numberOfDaysToAdd);
        return newDate;
    };

与第二个日期选择器类似。

$scope.$watch('dt',function(){
          if($scope.dt.getTime()<=$scope.dt2.getTime()){
              Datepicker.daysToAdd();
          }else {
              $scope.dt2=$scope.dt;
          }
      });

由于 $watch 似乎没有完成其工作,我该如何从这里继续?!

最佳答案

$scope.$watch('dt',function(oldVal,newVal,attr){          
      if($scope.dt > $scope.dt2){
          $scope.dt2 = newVal;
      }
});

$scope.$watch('dt2',function(oldVal,newVal,attr){
      if($scope.dt > $scope.dt2){
          $scope.dt = newVal;
      }    
});

关于javascript - 当第一个日期选择器中的日期在第二个日期选择器之后设置时更新日期选择器( Angular )中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26356667/

相关文章:

javascript - 从父级 Angular 数据创建可编辑的子级

angularjs - 在 Angular js日期选择器指令中仅隐藏清除按钮

jquery - Bootstrap 3 Datepicker -enabledHours() 需要一个数组参数

javascript - 如何获取元素先前选定的状态?

javascript - 使用javascript在IE中导入客户端证书

javascript - 在 Javascript 中读取 PHP 返回的 JSON

javascript - &lt;input type =“text” maxlength =“4” > 不应将逗号和点计入 maxlength

javascript - 如何使用RegExp替换javascript中的字符串?

javascript - 以编程方式打开 Angular 带日期选择器

asp.net - 多个 jquery (Telerik) Datepicker 和不同的样式