큰 프로젝트의 일부로 카운트 다운 시계를 만들었습니다. 여기에 내가 secondsRemaining을 바인딩하는 방법을 알아낼 수 없습니다볼 각도 서비스를 바인딩
'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();
});
});
에 연결된 컨트롤러에서에 전화 서비스에 대한 코드는 ~ $ scope.seconds. 나는 약 1 시간 동안이 물건을 찾아 내려고 노력했다. 나는 기능적인 프로그래밍에있어서 위구가 아니므로 나는 단지 잘못 생각하고 있다고 느낍니다.
setInterval 또는 clearInterval 메서드를 사용하면 안됩니다. Angular equivalents를 사용하십시오. 현재 휴대 전화로 미안해 내 글쓰기를 제한합니다. 나중에 시도해 볼 것입니다 – Spock
$ scope를 시도하십시오. $ watch ('seconds', ..... – Whisher