更改角度UI Datepicker的minimumDate

时间:2014-03-12 16:04:15

标签: javascript angularjs-scope angular-ui

我的问题如下;我已经设置了这样的日期选择器:

<div  ng-controller="DatepickerDemoCtrl" class="row">
        <div class="col-md-6">
            <p class="input-group">
              <input  name='gebdat' type="text" class="form-control" datepicker-popup="{{format}}" ng-model="someModell" is-open="opened" min="{{minimumDate}}" max="'2014-04-01'"  datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="true" close-text="Close" />
              <span class="input-group-btn">
                  <button class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button>
                </span>
            </p>
        </div>
</div>

它主要是从这里复制的:http://angular-ui.github.io/bootstrap/

现在我想将Datepicker的最小日期更改为80年前的日期。 js部分看起来像这样:

var DatepickerDemoCtrl = function ($scope, $filter) {


  var today = new Date();
  var year = today.getFullYear()-80;

  if(today.getDate()==29&&today.getMonth()==1){
    var minDate = new Date(year,2,1); 
    }else{
        var minDate = new Date(year,today.getMonth(),today.getDate());
    }

  var minDate2=String(''+minDate.getFullYear()+'-'+(minDate.getMonth()+1)+'-'+minDate.getDate()+'');
  $scope.minimumDate = minDate2;
 alert($scope.minimumDate); //and so on

警报显示我想要的日期,但是日期选择器似乎不喜欢它。我错过了吗 什么? 如果我手动将minDate输入到datepicker中,则右表达式为:min="'1934-02-12'"

编辑: 如果我只设置$ scope.minimumDate ='1934-03-13',它就有效;所以问题必须在某处(至少我猜是这样):

var minDate2=String(''+minDate.getFullYear()+'-'+(minDate.getMonth()+1)+'-'+minDate.getDate()+'');
      $scope.minimumDate = minDate2;

1 个答案:

答案 0 :(得分:0)

我把控制器部分解决了这个问题:

var DatepickerDemoCtrl = function ($scope, $filter) {

  var today = new Date();
  var year = today.getFullYear()-80;

  var minDate = new Date(year,today.getMonth(),today.getDate());

  var month = today.getMonth()+1;
  month='0'+month;
  var day = today.getDate();

  $scope.minimumDate = "'"+year+"-"+month+"-"+day+"'";}