Angular(1.5.1)视图值不更新

时间:2016-12-23 12:46:15

标签: angularjs

我正在尝试使用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'
      });

1 个答案:

答案 0 :(得分:1)

setTimeout没有触发$digest周期 - 使用Angulars自己的$timeout服务:

$timeout(test_facial_recognition_score, 100);