我有這個簡單的代碼在這裏,我不完全理解爲什麼服務沒有更新範圍變量。我相信這與$ scope不再指向服務內部變量的內存位置有關,但我不知道如何修復。
fooController.js
$scope.count = foo.cycleCount()
的index.html
<div>{{count}}</div>
fooService.js
angular.module('app').factory('foo', function($timeout){
return cycleCount: function(){
var count = 1;
$interval(function(){
if (count === 5){
count = 1;
}else{
count++;
}
return count;
}), 2000);
return count;
}
});
我想不會的$ timout移動到一個解決方案控制器,最好是不使用$ watch的一個(儘管如果它必須的話)。 WITH OBJECT
EDIT RETURNED:
fooController.js
$scope.count = foo.cycleCount()
的index.html
<div>{{count.num}}</div>
fooService.js
angular.module('app').factory('foo', function($timeout){
return cycleCount: function(){
var count = {num: 1 }
$interval(function(){
if (count.num === 5){
count.num = 1;
}else{
count.num++;
}
return count;
}), 2000);
return count;
}
});
哪裏是'CycleCount的()'執行? – kubuntu 2014-11-20 18:24:41
@kubuntu oppps,我離開了fooService。它在那裏。進行編輯。 – 2014-11-20 18:30:45