我正在尝试在angular bootsrap的datepicker指令中设置init-date。我收到以下错误
错误:[$ parse:syntax]语法错误:令牌'Jun'是表达式第5列的意外标记[Sun Jun 21 2015 17:00:00 GMT-0700(PDT)]从6月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 :(得分:2)
升级到最新版本0.13应解决问题...我使用的是版本0.12
希望这会有所帮助......
答案 1 :(得分:1)
从dateOptions删除minDate,maxDate修复了我的问题。
答案 2 :(得分:1)
对于那些无法更新超过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
};
答案 3 :(得分:0)
对于那些不能使用0.13的人:您可以直接将初始日期分配给模型:
module.controller[...., function(....){
//Init
$scope.dt = new Date();
$scope.dt.setDate($scope.dt.getDate()-7);
}]
答案 4 :(得分:0)
我通过将minDate和maxDate设置为毫秒来修复此问题:
minDate: new Date().getTime()
编辑:仅当使用minDate / maxDate作为选项对象的属性时,才需要将Date对象转换为毫秒。如果将其作为属性传递,则它可以保留为Date对象。