我創建了一個倒計時時鐘作爲大型項目的一部分。下面是服務綁定角度服務查看
'use strict';
angular.module('myApp')
.service('Countdownclock', function Countdownclock() {
var secondsRemaining = 0;
var timerProcess;
return {
//initialize the clock
startClock: function(minutes) {
secondsRemaining = minutes * 60;
timerProcess = setInterval(this.timer, 1000);
},
//timer function
timer: function() {
secondsRemaining -= 1;
if (secondsRemaining <= 0) {
clearInterval(timerProcess);
}
},
//get time
getTime: function() {
return secondsRemaining;
},
//add time
addTime: function(seconds) {
secondsRemaining += seconds;
},
//stop clock
stopClock: function() {
secondsRemaining = 0;
clearInterval(timerProcess);
}
};
});
然後我調用它的從控制器,該控制器還鏈接到一個視圖
'use strict';
angular.module('myApp')
.controller('MainCtrl', function($scope, Countdownclock) {
Countdownclock.startClock(1);
$scope.seconds = Countdownclock.getTime();
$scope.$watch(Countdownclock.getTime(), function(seconds) {
$scope.seconds = Countdownclock.getTime();
});
});
出於某種原因,我無法弄清楚如何綁定secondsRemaining代碼到$ scope.seconds。我一直在試圖弄清楚這個事情大概一個小時。我在功能編程上並不完全是一個智者,所以我有一種感覺,我只是在想它是錯的。
你不應該使用setInterval或clearInterval方法。使用Angular等價物。抱歉在移動設備上,這限制了我的寫作。請稍後再試看看 – Spock
試試$ scope。$ watch('seconds',..... – Whisher