【发布时间】:2014-03-18 01:22:25
【问题描述】:
我进入 Angular 并且我有以下code
html
<div ng-controller="Ctrl">
<p>{{val}}</p>
</div>
javascript
var app = angular.module('myApp', []);
app.service('testService', function(){
var myVal = new Date();
this.val = function(){
return myVal;
};
setInterval(function () { myVal = new Date(); console.log(myVal);}, 3000);
});
function Ctrl($scope, testService)
{
$scope.testService = testService;
$scope.val = testService.val();
$scope.$watch('testService.val()', function (newVal) {
$scope.val = newVal;
});
}
但是即使 setInterval 正在执行它也不会触发 Ctrl 监视语句
我错过了什么?
编辑:当我想到更改 myVal 属性的最简单机制时,我认为一些答案集中在 setInterval 函数上。在我的真实应用程序中,这个值被织物 JS(画布库)事件更改。
我怎么能说 angular 运行一个摘要 cicle(因为这个应该被监视的属性改变了它的值)而不手动调用 apply (这导致我出现一些错误,因为“应用程序已经在处理中”或其他东西
我试图通过演示来简化我的问题,但如果不清楚,我很抱歉
【问题讨论】:
标签: javascript angularjs