Ich habe eine Variable $ scope.date in meinem Controller. In der Ansicht wiederhole ich ein paar Dinge. Jeder Artikel hat eine Dauer in Minuten. Wie würde ich schrittweise für jede Wiederholung Zeit hinzufügen und diese anzeigen?Inkrement hinzufügen Datum mit ng-repeat
Antwort
Fügen Sie dem Controller eine Funktion hinzu, die das Datum einschließlich der Dauer berechnet. Arbeits Code-Schnipsel:
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>
Vielleicht war ich unklar, aber ich wollte die Verzögerung inkrementell hinzufügen. Das heißt, die erste Verzögerung ist 1, die zweite 3, die dritte 8 und so weiter. Ich nehme an, ich könnte das Array im Controller durchlaufen, aber ich dachte darüber nach, die ng-Wiederholung schrittweise hinzuzufügen. – Myone
aktualisierte Antwort zur Berechnung der inkrementellen Dauer – fikkatra
Sie können $ Index innerhalb ng-Wiederholung verwenden, dies wird Ihnen den Index des Artikels geben. Auf diese Weise ist es sehr einfach, die Daten im Controller zu berechnen – fikkatra
Ich habe nicht den Ruf für einen Kommentar haben, so wenden Sie sich bitte an mich nicht böse sein, diejenigen, die wütend auf Nicht-Antworten als Antworten, aber Ich würde empfehlen, in moment.js für solche Dinge zu suchen.
Können Sie Ihren Code hinzufügen? –