Angularjs: установка ползунков начальных дат

Я пытаюсь установить начальные позиции начала/конца даты для слайдера даты. Здесь, где я нахожусь. Как вы увидите, end позиция инициализируется как 2018-11-01 (см. vm.slider.max), когда я хочу, чтобы это было 2018-11-30. Любые предложения оценили.

https://jsfiddle.net/geotheory/uxxsq80k/

<title>angular slider test</title>
 
 
 
 
 



<div ng-app="myapp">
 <div ng-controller="TestController as vm">
 <p><b>Last updated:</b> {{vm.lastSliderUpdated}}</p>
 
 </div>
</div>
1 ответ

Проблема с вашей реализацией заключается в том, что слайдер не может рассчитать диапазон строк. В объекте ползунка вы устанавливаете диапазон дат как строки локали и определяете значения min и max как объекты Date.

Чтобы исправить это, я рекомендую иметь значения диапазона в миллисекундах вместо строк локали и определять значения min и max как миллисекунды. Кроме того, вы можете использовать функцию translate для перевода значения для отображения строки локали вместо даты миллисекунды.

...

for (var i = start_date.getTime(); i <= end_date.getTime(); i += mil) {
 range.push(new Date(i).getTime());
}

...

vm.slider = {
 min: new Date('2018-11-01').getTime(),
 max: new Date('2018-11-30').getTime(),
 options: {
 stepsArray: vm.showDates,
 id: 'sliderA',
 onEnd: vm.*************,
 translate: (value) => {
 return new Date(value).toLocaleDateString();
 }
 }
};

Проверьте эту измененную скрипку.

licensed under cc by-sa 3.0 with attribution.