Я хочу получить значение внутри моей функции $ interval и использовать его как интервал времени.
У меня index.html
:
<iframe src="{{MediaFile}}" frameborder="0" allowfullscreen autoplay></iframe>
А MediaFile
Таблица:
+------+-------------+--------------+
| ID | FileName | Interval | //Interval in secs
+------+-------------+--------------+
| 1 | image.jpg | 30 |
+------+-------------+--------------+
| 2 | image1.jpg | 10 |
+------+-------------+--------------+
| 3 | video.mp4 | 50 |
+------+-------------+--------------+
А index.js
:
// loadMediaFile, select the list of MediaFile in my table
loadMediaFile.MediaFiles('loadMediaFile').then(function (d) {
$scope.IntervalTime = 2000;
$scope.Count = -1;
$interval(function () {
$scope.Count++
$scope.MediaFile = '/MediaFiles/Content/' + d[$scope.Count].FileName;
$scope.IntervalTime = d[$scope.Count].Interval * 1000;
// This is to load back to index 0 of my MediaFile when all is loaded
if (d.length == ($scope.Count + 1)) {
$scope.Count = -1;
}
}, $scope.IntervalTime);
console.log($scope.IntervalTime);
})
Вывод должен быть:
Displays Image.jpg after 2secs
Displays Image1.jpg after 30
Displays Video.mp4 after 10
Displays Image.jpg after 50secs
Проблема в том, что интервал остается равным 2 секундам, он не обновляет значение интервала, так как правильное значение находится внутри моего интервала $. Вот почему я хочу вернуть правильное значение в $ scope.IntervalTime, например, используя return
.