我正在尝试使用angular 1.5.1更新视图中的值,但我似乎无法使其正常工作。
HTML:
<section>
{{ main.state }}
</section>
控制器:
vm.state = 'Scanning face';
test_facial_recognition_score();
function test_facial_recognition_score() {
var score = vm.webgazer.getTracker().clm.getScore();
console.log('score: ' + score);
vm.state = 'Facial detection score: ' + score * 100;
if(score >= 0.90) {
recognize_facial_points();
} else {
setTimeout(function () {
test_facial_recognition_score();
}, 100);
}
}
我的视图中显示的初始vm.state
值正确,函数test_facial_recognition_score
的工作正常。
控制台:
main.controller.js:25 score: 0.2973043774479575
main.controller.js:25 score: 0.7672696234331723
main.controller.js:25 score: 0.7830798892627874
main.controller.js:25 score: 0.8757129516231377
main.controller.js:25 score: 0.9066341994265908
我的问题:为什么视图值({{ main.state }}
)不会更新vm.state
值?
编辑1:
{{ main.state }}
因为stateprovider而被调用:
$stateProvider
.state('home', {
url: '/',
templateUrl: 'app/main/main.html',
controller: 'MainController',
controllerAs: 'main'
});
答案 0 :(得分:1)
setTimeout
没有触发$digest
周期 - 使用Angulars自己的$timeout
服务:
$timeout(test_facial_recognition_score, 100);