У меня есть код, который я хочу повторить несколько раз с разными атрибутами.
Я использую $ interval из AngularJS и не могу преобразовать кусок кода в функцию.Ниже я опубликую оба кода, код без функции и код, который я пробовал с функцией, но выдает ошибку.
Оригинальный код
$scope.alarm.times.armed_away.pending_time = null;
var pendingTime;
var promiseAlarmPendingTime;
$scope.alarm.times.armed_away.pending_time = entity.attributes.armed_away_pending_time;
promiseAlarmPendingTime = $interval(function(){
if($scope.alarm.times.armed_away.pending_time >= 0) {
$scope.alarm.times.armed_away.pending_time -= 1;
if($scope.alarm.times.armed_away.pending_time > 10) {
playSound('audio/alarm_pending_time_1.mp3');
} else if($scope.alarm.times.armed_away.pending_time > 0) {
playSound('audio/alarm_pending_time_2.mp3');
} else if($scope.alarm.times.armed_away.pending_time == 0){
$interval.cancel(promiseAlarmPendingTime);
}
} else {
$scope.alarm.times.armed_away.pending_time = null;
$interval.cancel(promiseAlarmPendingTime);
promiseAlarmPendingTime = null;
}
}, 1000);
Моя попытка заставить его работать с функцией
promiseAlarmPendingTime = $interval($scope.fnAlarmPendingTime(
$scope.alarm.times.armed_away.pending_time,
promiseAlarmPendingTime), 1000);
$scope.fnAlarmPendingTime = function(pendTime, promise){
if(pendTime >= 0) {
pendTime -= 1;
if(pendTime > 10) {
playSound('audio/alarm_pending_time_1.mp3');
} else if(pendTime > 0) {
playSound('audio/alarm_pending_time_2.mp3');
} else if(pendTime == 0){
$interval.cancel(promiseAlarmPendingTime);
}
} else {
pendTime = null;
$interval.cancel(promise);
promise = null;
}
};
функция повторяется 1 раз, а затем выдает ошибку:
TypeError: f is not a function
Я также попытался удалить весь код внутри функции, но возникает та же ошибка.Может быть, какая-то проблема с синтаксисом?