angularstrap 2.1.6 日期选择器禁用日期
angularstrap 2.1.6 datepicker disable dates
我正在尝试使用 data-disabled-dates 属性禁用 angularstrap datapicker 中的意大利庆祝活动。
<input type='text' bs-datepicker="true" ... data-disabled-dates="{{fest}}" />
这是我生成日期的方式:
$scope.fest = [{start: new Date(2015, 0, 1), end: new Date(2015, 0, 2)}, ...]
这里是 console.log 庆祝活动:
[{"start":"2014-12-31T23:00:00.000Z","end":"2015-01-01T23:00:00.000Z"},{"start":"2015-01-05T23:00:00.000Z","end":"2015-01-06T23:00:00.000Z"},{"start":"2015-04-24T22:00:00.000Z","end":"2015-04-25T22:00:00.000Z"},{"start":"2015-04-30T22:00:00.000Z","end":"2015-05-01T22:00:00.000Z"},{"start":"2015-06-01T22:00:00.000Z","end":"2015-06-02T22:00:00.000Z"},{"start":"2015-08-14T22:00:00.000Z","end":"2015-08-15T22:00:00.000Z"},{"start":"2015-10-31T23:00:00.000Z","end":"2015-11-01T23:00:00.000Z"},{"start":"2015-12-07T23:00:00.000Z","end":"2015-12-08T23:00:00.000Z"},{"start":"2015-12-24T23:00:00.000Z","end":"2015-12-25T23:00:00.000Z"},{"start":"2015-12-25T23:00:00.000Z","end":"2015-12-26T23:00:00.000Z"},{"start":"2015-04-04T22:00:00.000Z","end":"2015-04-05T22:00:00.000Z"},{"start":"2015-04-05T22:00:00.000Z","end":"2015-04-06T22:00:00.000Z"},{"start":"2015-12-31T23:00:00.000Z","end":"2016-01-01T23:00:00.000Z"},{"start":"2016-01-05T23:00:00.000Z","end":"2016-01-06T23:00:00.000Z"},{"start":"2016-04-24T22:00:00.000Z","end":"2016-04-25T22:00:00.000Z"},{"start":"2016-04-30T22:00:00.000Z","end":"2016-05-01T22:00:00.000Z"},{"start":"2016-06-01T22:00:00.000Z","end":"2016-06-02T22:00:00.000Z"},{"start":"2016-08-14T22:00:00.000Z","end":"2016-08-15T22:00:00.000Z"},{"start":"2016-10-31T23:00:00.000Z","end":"2016-11-01T23:00:00.000Z"},{"start":"2016-12-07T23:00:00.000Z","end":"2016-12-08T23:00:00.000Z"},{"start":"2016-12-24T23:00:00.000Z","end":"2016-12-25T23:00:00.000Z"},{"start":"2016-12-25T23:00:00.000Z","end":"2016-12-26T23:00:00.000Z"},{"start":"2016-03-26T23:00:00.000Z","end":"2016-03-27T22:00:00.000Z"},{"start":"2016-03-27T22:00:00.000Z","end":"2016-03-28T22:00:00.000Z"}];
Datepicker 适用于 data-min-date、data-start-date、data-max-date、data-date-format,但会忽略 data-disabled-dates。为什么?
这是在 github 上用我的代码详细说明的问题:
https://github.com/mgcrea/angular-strap/issues/1432
我无法让它以任何方式工作。
你可以试试:
$scope.fest = [{"start": new Date("2014-12-31T23:00:00.000Z"),"end": new Date("2015-01-01T23:00:00.000Z")};
将 ISO 字符串转换为日期。
我不确定这是否是最好(或最差)的方式,但是通过更改 angular-strap.js "views.isDisabled" 似乎可行:
// Disabled because of disabled date range.
if (options.disabledDateRanges) {
for (var i = 0; i < options.disabledDateRanges.length; i++) {
var startRange = new Date(options.disabledDateRanges[i].start).getTime();
var endRange = new Date(options.disabledDateRanges[i].end).getTime();
if (time >= startRange && time <= endRange) {
return true;
}
}
}
我正在尝试使用 data-disabled-dates 属性禁用 angularstrap datapicker 中的意大利庆祝活动。
<input type='text' bs-datepicker="true" ... data-disabled-dates="{{fest}}" />
这是我生成日期的方式:
$scope.fest = [{start: new Date(2015, 0, 1), end: new Date(2015, 0, 2)}, ...]
这里是 console.log 庆祝活动:
[{"start":"2014-12-31T23:00:00.000Z","end":"2015-01-01T23:00:00.000Z"},{"start":"2015-01-05T23:00:00.000Z","end":"2015-01-06T23:00:00.000Z"},{"start":"2015-04-24T22:00:00.000Z","end":"2015-04-25T22:00:00.000Z"},{"start":"2015-04-30T22:00:00.000Z","end":"2015-05-01T22:00:00.000Z"},{"start":"2015-06-01T22:00:00.000Z","end":"2015-06-02T22:00:00.000Z"},{"start":"2015-08-14T22:00:00.000Z","end":"2015-08-15T22:00:00.000Z"},{"start":"2015-10-31T23:00:00.000Z","end":"2015-11-01T23:00:00.000Z"},{"start":"2015-12-07T23:00:00.000Z","end":"2015-12-08T23:00:00.000Z"},{"start":"2015-12-24T23:00:00.000Z","end":"2015-12-25T23:00:00.000Z"},{"start":"2015-12-25T23:00:00.000Z","end":"2015-12-26T23:00:00.000Z"},{"start":"2015-04-04T22:00:00.000Z","end":"2015-04-05T22:00:00.000Z"},{"start":"2015-04-05T22:00:00.000Z","end":"2015-04-06T22:00:00.000Z"},{"start":"2015-12-31T23:00:00.000Z","end":"2016-01-01T23:00:00.000Z"},{"start":"2016-01-05T23:00:00.000Z","end":"2016-01-06T23:00:00.000Z"},{"start":"2016-04-24T22:00:00.000Z","end":"2016-04-25T22:00:00.000Z"},{"start":"2016-04-30T22:00:00.000Z","end":"2016-05-01T22:00:00.000Z"},{"start":"2016-06-01T22:00:00.000Z","end":"2016-06-02T22:00:00.000Z"},{"start":"2016-08-14T22:00:00.000Z","end":"2016-08-15T22:00:00.000Z"},{"start":"2016-10-31T23:00:00.000Z","end":"2016-11-01T23:00:00.000Z"},{"start":"2016-12-07T23:00:00.000Z","end":"2016-12-08T23:00:00.000Z"},{"start":"2016-12-24T23:00:00.000Z","end":"2016-12-25T23:00:00.000Z"},{"start":"2016-12-25T23:00:00.000Z","end":"2016-12-26T23:00:00.000Z"},{"start":"2016-03-26T23:00:00.000Z","end":"2016-03-27T22:00:00.000Z"},{"start":"2016-03-27T22:00:00.000Z","end":"2016-03-28T22:00:00.000Z"}];
Datepicker 适用于 data-min-date、data-start-date、data-max-date、data-date-format,但会忽略 data-disabled-dates。为什么?
这是在 github 上用我的代码详细说明的问题: https://github.com/mgcrea/angular-strap/issues/1432
我无法让它以任何方式工作。
你可以试试:
$scope.fest = [{"start": new Date("2014-12-31T23:00:00.000Z"),"end": new Date("2015-01-01T23:00:00.000Z")};
将 ISO 字符串转换为日期。
我不确定这是否是最好(或最差)的方式,但是通过更改 angular-strap.js "views.isDisabled" 似乎可行:
// Disabled because of disabled date range.
if (options.disabledDateRanges) {
for (var i = 0; i < options.disabledDateRanges.length; i++) {
var startRange = new Date(options.disabledDateRanges[i].start).getTime();
var endRange = new Date(options.disabledDateRanges[i].end).getTime();
if (time >= startRange && time <= endRange) {
return true;
}
}
}