我正在尝试通过从服务获取数据的控制器更新视图。出于某种原因,当服务的数据更改时,视图不会更新。我从我的应用程序中提取了一个示例。我已经尝试了各种绑定($scope.time = TimerService.value
,包装在一个函数中,使用$watch
- 没有成功)。
请注意,在我的原始应用程序中,这是一个对象数组,并且对象的属性发生了变化。
-- 脚本.js --
var mod = angular.module('mymodule', []);
mod.service('TimerService', function() {
this.value = 0;
var self = this;
setInterval(function() {
self.value += 1;
}, 2000)
});
mod.controller('TimerCtrl', ['TimerService', '$scope', function(TimerService, $scope) {
$scope.time = TimerService.value;
$scope.$watch(function() {
return TimerService.value;
}, function(newValue) {
$scope.time = newValue;
}, true);
$scope.otherValue = '12345';
}]);
angular.element(document).ready(function() {
alert('start');
angular.bootstrap(document, ['mymodule']);
});
-- index.html --
<!DOCTYPE html>
<html>
<head>
<script src="./angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<div ng-controller="TimerCtrl">
<h1>- {{ time }}-</h1>
<h2>{{ otherValue }}</h2>
</div>
</body>
</html>