2014-03-12 20 views
0

我的问题如下;我设置了一个日期选择器这样的:改变角度UI的最小日期Datepicker

<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/

现在我想前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到日期选择正确的表达是:min="'1934-02-12'"

编辑: 它的工作原理,如果我只是设置$ scope.minimumDate =“1934年3月13日”;所以这个问题必须在某个地方(至少我想是这样):

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

难道是__ $ scope.minDate__而不是__ $ scope.minimumDate__? –

+0

刚刚尝试过,不起作用... :( – dummkind

回答

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+"'";} 
相关问题