在我的應用我想有一個自我更新的數據服務,其被注入到控制器:自我更新服務注入到控制器
app.factory("StatsService", function() {
var service;
service = {
data: 0,
init: function() {
var self = this;
setInterval(function() {
self.data = Math.floor((Math.random() * 100) + 1);
}, 1000);
}
};
service.init();
return service;
});
下面是一個例子控制器:
app.controller("SourcesController", ['$scope', 'StatsService', function($scope, StatsService) {
$scope.data = StatsService.data;
$scope.$watch('data', function(val) {
// this does not work either
});
}
如何讓控制器反映服務更改?我不知道我是否在服務或控制器方面做了錯誤,但它不起作用。
大多數情況下,您希望使用'$ timeout'服務來代替。 –
的確,使用setInterval更好。 – Christoph
'$ timeout'消除了'$ rootScope'依賴嗎? – acid