2017-01-17 3 views
0

바코드 스캐너 "then"의 일부 값을 변경하는 컨트롤러 가 있습니다.각도 DOM 수정 타이밍

먼저 코드를 설정 한 다음 "disabled" 변수를 설정 한 다음 입력에 포커스를 둡니다.

.then(function (barcodeData) { 
    // Success! Barcode data is here      
    $scope.selectProdotto = barcodeData; 
    $scope.txtDisabled = false; 
    var pageElements = document.querySelectorAll('input[type=number], input[type=text], textarea'); 
    var first_element = pageElements[1]; 
    first_element.focus(); 
}); 

내가 집중하고자하는 입력은 다음과 같습니다. 내가 .focus()을 수행 할 때 그래서 실패

$scope.txtDisabled = false; 

을 변경 한 후
<input class='input' type='number' ng-disabled="txtDisabled" /> 

이제 문제는 입력이 여전히 비활성화되어 있다는 점이다.

내 기능이 끝나면 입력 내용을 올바르게 사용할 수 있습니다.

DOM에 변수가 적용되는시기는 묻습니다. 입력 준비가되고 초점을 맞출 수있을 때까지 기다리는 방법은 무엇입니까?

답변

1

을 시도했다
.then(function (barcodeData) { 
// Success! Barcode data is here      
$scope.selectProdotto = barcodeData; 
$scope.txtDisabled = false; 
$scope.$apply(); 
var pageElements = document.querySelectorAll('input[type=number], input[type=text], textarea'); 
var first_element = pageElements[1]; 
first_element.focus(); 

});

+0

감사합니다. 이제 작동합니다. –