2015-04-27 71 views
6

我正在嘗試在angular bootsrap的datepicker指令中設置init-date。而且我提示以下錯誤:Angular UI Bootstrap DatePicker initDate問題

Error: [$parse:syntax] Syntax Error: Token 'Jun' is an unexpected token at column 5 of the expression [Sun Jun 21 2015 17:00:00 GMT-0700 (PDT)] starting at [Jun 21 2015 17:00:00 GMT-0700 (PDT)].

下面是標記了我使用

<div ng-controller="DatepickerDemoCtrl"> 
<h4>Popup</h4> 
<div class="row"> 
    <div class="col-md-6"> 
     <p class="input-group"> 
      <input type="text" 
        class="form-control" 
        init-date="dateOptions.initDate" 
        datepicker-popup="{{format}}" 
        ng-model="dt" 
        is-open="opened" 
        min-date="dateOptions.minDate" 
        max-date="'2016-06-22'" 
        datepicker-options="dateOptions" 
        date-disabled="disabled(date, mode)" 
        ng-required="true" close-text="Close" /> 
      <span class="input-group-btn"> 
      <button type="button" class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button> 
      </span> 
     </p> 
    </div> 
</div> 

這裏是JavaScript身邊,我已經制定

angular.module('app', ['ui.bootstrap']); 
angular.module('app').controller('DatepickerDemoCtrl', function ($scope) { 
    $scope.open = function($event) { 
     $event.preventDefault(); 
     $event.stopPropagation(); 

     $scope.opened = true; 
    }; 
    $scope.dateOptions = { 
     formatYear: 'yy', 
     startingDay: 1, 
     minDate: new Date(2015, 9, 9), 
     initDate: new Date('2015-06-22') 
    }; 
    $scope.format = ['MM-dd-yyyy']; 
}); 

不完全確定我在這裏可能會錯過什麼......有人可以幫忙嗎?

+0

我覺得Angular試圖將一個字符串解析爲一個javascript表達式,就像錯誤說的那樣。但是從你提供的代碼,哪個指令或屬性導致這一點還不清楚。 –

回答

2

升級到0.13最新版本應該可以解決這個問題......我用的版本0.12

希望這有助於...

+0

修復了我的問題。謝謝! – bodagetta

+0

我無法更新。其他解決方案? –

0

對於那些,誰不能使用0.13:您可以分配的init日期直接到模型:

module.controller[...., function(....){ 
    //Init 
    $scope.dt = new Date(); 
    $scope.dt.setDate($scope.dt.getDate()-7); 

}] 
+0

這並沒有解決我的問題。 –

1

從dateOptions刪除minDate,maxDate解決了我的問題。

0

對於那些無法更新超過0.12但必須設置最小和最大日期的人,我能找到解決方法。我把選項放在如下所示的範圍內。

不可否認,它很醜,很煩人,但通過setDate()重置日期是唯一使它對我有效的事情。只是分享。讓這是你的最後一個選擇。

var minDate = new Date(2017, 3, 27); 
minDate = minDate.setDate(minDate.getDate()-0); 
var maxDate = new Date(); 
maxDate = maxDate.setDate(maxDate.getDate()-0); 

$scope.dpOptions = { 
    minDate: minDate, 
    maxDate: maxDate 
};