【问题标题】:angularjs - Set time using range sliderangularjs - 使用范围滑块设置时间
【发布时间】:2016-08-02 17:17:35
【问题描述】:

我正在尝试使用离子范围来设置时间段,步长为 15 分钟。 离子范围的工作方式与具有最小值、最大值、步长、值的通用范围输入类似。

这是范围 html 代码:

<div class="item range">
  <input type="range" min="0.15" max="12" value="0" step="0.15" ng-model="TimeValue" ng-change="setTime(TimeValue)">
</div>

这是我在更改时调用的函数:

$scope.setTime = (value) ->
   $scope.hours = Math.floor(value / 0.6);
   $scope.minutes = value - ($scope.hours * 0.6);

很遗憾,这不起作用。

我想要实现的是一个步长为 0.15(分钟)的滑块,当它达到 0.6 时会自动创建一个小时,然后在 1.15(小时)处再次开始,依此类推。

我在这里关注这个答案:using ionic range to set months and years 但那是几年和几个月的时间,计算方式不同。

这是一个快速演示:http://codepen.io/anon/pen/eZVPRv?editors=1010

编辑

新演示:http://codepen.io/anon/pen/eZVPRv?editors=1010

【问题讨论】:

  • 我可以看到它设置了小时和分钟,所以什么不起作用?
  • 如果滑动,它会设置小时和分钟,但值(特别是分钟)是错误的。第一步是正确的(直到 1 小时),但随后会达到 0.15000000002 - 0.30000000004 - 0.45000000007 等等,不断增加。这可能会导致延误,我需要非常准确

标签: javascript angularjs ionic-framework


【解决方案1】:

使用下面的代码伙伴,希望这是你需要的-

angular.module('ionicApp', ['ionic'])
.controller('MyCtrl', ['$scope', function($scope){    
  $scope.setTime = function (value) {
    $scope.hours = Math.floor(value / 0.6);
  if(($scope.TimeValue % 0.6) == 0 ){
    $scope.minutes = 0;
    }else{
      if($scope.TimeValue <= .6){
        $scope.minutes = Math.round((value - ($scope.hours))*100);  
      }else{
        value = Math.round((value - ($scope.hours * .6))*100);
        $scope.minutes = value;
      }
    }
  }
  $scope.TimeValue = 0.15;
}])

存在计算问题,请在此处查看- http://codepen.io/himanshuapril1/pen/eZVPXe?editors=1010

【讨论】:

  • 这几乎是完美的,但是“默认值”仍然存在一些问题,请您也检查一下吗?比我选择你的答案:) 谢谢男人
  • 在这里你可以看到为什么我仍然有问题:codepen.io/anon/pen/qZxgVY 基本上,我需要一种允许我将值添加回滑块的格式,但正确地将其保持为分钟和小时
  • 检查这个,得到你需要的一切 - codepen.io/himanshuapril1/pen/eZVXmV
  • 奇怪的是,它不适用于我的应用程序。我在弹出窗口中有滑块,它会影响行为吗?
  • 这是我的应用程序上发生的情况:codepen.io/anon/pen/LNQavV?editors=1010。同样在这里。我在弹出窗口中使用滑块,在这里您可以看到我遇到的相同问题
猜你喜欢
  • 2016-11-17
  • 2017-10-03
  • 1970-01-01
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
相关资源
最近更新 更多