2016-12-23 80 views
0

我試圖用角度1.5.1更新我的視圖中的值,但我似乎無法得到它的工作。角度(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

你能證明你的HTML充分請求。你爲什麼稱它爲'{{main.state}}' – Jax

+0

這是我的完整HTML .__。這只是一個小測試項目,所以沒有複雜的事情。 – Xiduzo

回答

1

setTimeout不會觸發$digest循環 - 使用Angulars自己$timeout服務:

$timeout(test_facial_recognition_score, 100); 
+0

謝謝!這工作 – Xiduzo

+0

@Xiduzo你應該接受答案。 – Jax