내 컨트롤러 범위의 부울 변수에 바인딩하여로드 애니메이션을 표시할지 여부를 나타냅니다. 그러나 다음 코드는 작동하지 않습니다. $timeout
내부의 기능이 실행되지만보기가 업데이트되지 않습니다.컨트롤러의 프리미티브 값에 바인딩
크롬 각도 확장을 사용하여 스코프를 검사 할 때 ctrl.loading
은 true
입니다.
참조 유형과 달리 자바 스크립트에서 값 유형이 부울 때문에 발생합니까?
제 생각에 뷰는 글자 그대로 true
에 바인딩되며 변경 될 부울 값의 위치가 아닙니다.
뷰가 변수에 바인딩되는 것이 아니라 변수에 바인딩되도록하려면 어떻게해야합니까?
컨트롤러 :
function TestController($scope,$timeout){
"use strict";
var loading=true;
$timeout(function(){
loading=false;
}, 1000);
return {
loading:loading
}
}
템플릿 :
<div>
<h1 ng-show="ctrl.loading">Loading</h1>
<h1 ng-hide="ctrl.loading">Not Loading</h1>
</div>
abovecode가 GET 요청이 반환 wqas 후 정말 내가 값을 설정합니다, 그냥 예입니다.
$http.get().then(function() {
loading=false;
}, function() {
loading=false;
})
그러나 효과는 같습니다.
그것이 있어야하지 않나요'$ scope.ctrl.loading = false' 대신'loading = false'를 사용합니까? – Titus