在Angular Js中选择日期后不要丢失Rzslider的先前位置? [英] Don't lose previous position of Rzslider after select the date in Angular Js?
问题描述
我使用 RZslider 作为日期和选择器.但我再次面临一些问题和 agin.以及 Rzlider 和 angularJs 中的新功能.所以滑块包含 8 小时的当前时间 +4 小时和 -4 小时.如果我运行滑块,则它包含当前时间和 -4、+4,示例如果当前时间为 10:00,则滑块填充 06:00 到 14:00.
屏幕截图:
然后,如果我更改滑块喜欢拖动并在选择日期后滑块再次出现默认当前值.但我不想在选择日期后更改滑块位置.因为如果我更改滑块并选择日期,那么我将单击一个应用按钮,然后我将获得开始日期、时间和结束日期、时间.
var app = angular.module('rzSliderDemo', ['rzModule', 'ui.bootstrap']);app.controller('MainCtrl', function($scope, $rootScope, $timeout) {$scope.$watch('dateBirth', function(n, o) {var newDay = n ||新日期();$scope.selectedDate = moment(newDay);$scope.selectedDate.hour(moment().hour());$scope.selectedDate.minute(0);$scope.init();});$scope.init = function() {var startDate, endDate, startTime, endTime;var timeData = getRange($scope.selectedDate);$scope.localTime = timeData.currentTime;//这个小时的实际开始var arr = timeData.times.map(n => {返回 {值:n.value//图例:n.value};});$超时(功能(){$scope.slider = {minValue: $scope.localTime.clone().subtract(4, "hours").format('YYYY DD MMM HH:mm'),maxValue: $scope.localTime.clone().add(4, "hours").format('YYYY DD MMM HH:mm'),选项: {showTicks: 真,步骤数组: arr,可拖动范围:真,}};});}$scope.init();});函数 getRange(currentDate) {var arr = [];var totalHourRange = 32;var currentTime = currentDate ||片刻();//使用 Moment 的当前日期和时间//设置当前时间为小时的开始当前时间.分钟(0);//克隆日期并减去 1/2 总范围以获得起点var tmpTime = currentTime.clone();//tmpTime.subtract(totalHourRange/2, '小时');tmpTime.hour(0).subtract(4, '小时');//offset 是距离当前点的分钟数for (var i = -6 * (totalHourRange/2); i <= 6 * (totalHourRange/2); i++) {arr.push({value: tmpTime.format('YYYY DD MMM HH:mm'), offset: i * 10});tmpTime.add(10, '分钟');}返回 { 时间:arr,currentTime:currentTime,totalHourRange:totalHourRange};}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="样式表"/><link href="https://rawgit.com/rzajac/angularjs-slider/master/dist/rzslider.css" rel="stylesheet"/><script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.14.3/ui-bootstrap-tpls.js"></script><script src="https://rawgit.com/rzajac/angularjs-slider/master/dist/rzslider.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script><div ng-app="rzSliderDemo"><div ng-controller="MainCtrl" class="wrapper"><标题><h2>AngularJS 触摸滑块</h2></标题><文章><div class="form-group"><label for="choos-birth" class="control-label">选择日期:</label><div class="控件"><input id="choos-birth" class="form-control" type="date" ng-model="dateBirth" style="witdh:100px;">
<br/><rzslider rz-slider-model="slider.minValue" rz-slider-high="slider.maxValue" rz-slider-options="slider.options"></rzslider></文章>