使用 ng-repeat 增量添加日期

Incrementally add date with ng-repeat

我的控制器中有一个变量 $scope.date。在视图中,我对几个项目进行了 ng-repeat。每个项目都有以分钟为单位的持续时间。我将如何为每次重复增加时间并显示它?

在控制器上添加一个计算日期(包括持续时间)的函数。工作代码片段:

var app = angular.module('myapp', []);
app.controller('myctrl', function($scope) {
  $scope.someDate = new Date();
  $scope.durations = [1, 2, 5, 6, 8];

  $scope.calculateIncrementalDuration = function(index) {

    var sum = 0;
    for (var i = 0; i <= index; i++) {
      sum += $scope.durations[i];
    }
    return sum;
  }
  $scope.calculateEndDate = function(startDate, index) {
    return new Date(startDate.getTime() + $scope.calculateIncrementalDuration(index) * 60000);
  }
});
.delay {
  margin-top: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myapp" ng-controller="myctrl">
  Start time: {{someDate.toUTCString()}}
  <div class="delay" ng-repeat="duration in durations">Duration in minutes: {{calculateIncrementalDuration($index)}}
    <div>End time: {{calculateEndDate(someDate, $index).toUTCString()}}</div>
  </div>
</div>

我没有发表评论的声誉,所以请不要生我的气,那些对没有回答的人生气,但我强烈建议调查 moment.js像这样的事情。