그래서있어 다음과 같은 코드 ...각도 1.5 범위 변수
testApp.controller(...) {
$scope.results = [];
$scope.hasData = true;
$scope.results.push({
"name": "test"
}); // WORKS
db.get('table_people').then(function(response) {
console.log('success');
$scope.results.push({
"name": "test"
});
}); // this DOESN'T WORK even though the "success" message is printed...
});
그리고 당신은 코멘트에서 알 수 있듯이, 배열 작품에 대한 첫 번째 push
하지만, 후자는 그렇지 않습니다. 맨 위는 {{ results }}
을 사용하여 Angular 템플릿에서 인쇄 할 수 있지만 후자는 빈 배열을 반환합니다.
편집 : 해결책이 실행하지만 종류의 함께 해킹 솔루션 같은 느낌되지 않았습니다주기 다이제스트 로 $timeout
를 사용하여 발견되었다.
편집 : 솔루션 ...
db.get('table_people').then(function (response) {
console.log('success');
$timeout(function() {
$scope.results = response.data;
});
});
내가 인해 더 이상 코드의 기능에 더 이상 테스트 데이터를 필요로하지 않고 직접 응답 데이터를 적용 할 수있는 솔루션 코드가 약간 다릅니다.
중첩 된 함수 내부에서 console.log ($ scope)를 사용하면 어떻게됩니까? 어쩌면 $ 범위가 실제로 범위를 벗어났습니다. –
해결책도 게시하십시오. 어쩌면 그것은 정돈 될 수 있습니다. –
또는 다이제스트주기를 강제 실행할 수 있습니다. –