【问题标题】:Updating date in Datepicker (Angular) when date in first datepicker is set after second datepicker当第一个 datepicker 中的日期设置在第二个 datepicker 之后时,更新 Datepicker (Angular) 中的日期
【发布时间】:2014-10-14 09:02:08
【问题描述】:

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

<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 似乎无法正常工作,我该如何从这里开始?!

【问题讨论】:

  • 我假设默认流程是这样的,当在第一个日期选择器中选择日期时,第二个日期选择器不应该改变。但是当这个流程反转时,您希望日期选择器反映您的输入。如果您希望两个日期选择器中的日期相同,为什么不使用单个范围变量作为 ng-model?

标签: javascript angularjs datepicker watch


【解决方案1】:
$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;
      }    
});

【讨论】:

  • 首先,感谢您的快速回复。但是你能提供一些简短的解释我到底应该做什么吗?您正在为 dt2 和 d1 分配一个新值,但如果 dt2 在 dt 之前设置(例如)并且 d1 在 dt2 之后设置,它应该会改变
  • 对不起,我还没有看到答案;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-03
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
  • 2012-04-01
  • 2013-04-28
  • 1970-01-01
相关资源
最近更新 更多