2015-03-13 60 views
0

我有一個輕微的問題,當我點擊查看另一張幻燈片時,我的幻燈片的延遲偏移爲interval創建間隔計時器重置

例如..我有10張幻燈片,幻燈片標識符可見,幻燈片1可見,暫停延遲5秒,我點擊第5個縮略圖/標識符滑塊將顯示第5張幻燈片,但是延遲偏移量爲定時器只會是最初幻燈片中剩下的5秒。

有沒有一種方法,我可以添加一個計時器重置或暫停我的功能。 Plunkr

$scope.startAuto = function() { 
    var timer = $interval(function() { 

    if ($scope.jobNotification < $scope.jobs.length -1) { 
     $scope.jobNotification += 1; 
    } else { 
     $scope.jobNotification = 0; 

    } 

    }, 3000); 
}; 

$scope.isActive = function (index) { 
    return $scope.jobNotification === index; 
}; 

$scope.showJobNotification = function (index) { 
    $scope.jobNotification = index; 
}; 
+0

您plunkr沒有做任何事情。爲什麼它與你在這裏發佈的內容大相徑庭?我在那裏沒有看到任何'startAuto'。 – JLRishe 2015-03-13 10:37:14

+0

@JLRishe對不起,錯了Plunkr鏈接,我會更新 – NewBoy 2015-03-13 10:45:00

回答

0

您可以停止,當頁面變更重啓定時器:

var timer; 
$scope.startAuto = function() { 
    timer = $interval(function() { 
     $scope.jobNotification = ($scope.jobNotification + 1) % $scope.jobs.length; 
    }, 3000); 
}; 

$scope.restartAuto = function() { 
    if (timer) { 
     $interval.cancel(timer); 
    } 
    $scope.startAuto(); 
}; 

$scope.isActive = function (index) { 
    return $scope.jobNotification === index; 
}; 

$scope.showJobNotification = function (index) { 
    $scope.restartAuto(); 
    $scope.jobNotification = index; 
}; 
+0

優雅的代碼,謝謝! – NewBoy 2015-03-13 10:54:24