2014-06-20 2 views
1

비디오가로드 될 때 입력 필드의 값을 변경하려고합니다.내부 이벤트 콜백에서 바운드 각도 변수를 변경하십시오.

이 작동 : 여기에 관련 코드의

$scope.stopRecording = function() { 
    // value of the input changes as expected 
    $scope.videoEndPos = 10; 
}; 

이것은 내가 거기에 몇 가지 중요한 비디오 물건을 왼쪽이 짧은을 유지하기위한 노력의 일환으로

$scope.stopRecording = function() { 

    video.onloadedmetadata = function() { 

     $scope.videoEndPos = 10; 

     // the value of the input does not change, but this still correctly outputs 10 
     console.log($scope.videoEndPos); 
    }; 

}; 

을하지 않습니다,하지만 그 부분은 작동 중이고 onloadedmetadata가 제대로 실행되므로 각도와 입력이 펑키합니다. 그러나 관련 코드를 빠뜨린 것 같으면 알려주십시오.

답변

2

video.stopRecording는 각도 우주의 외부에서 발생하는, 그래서 변화에 대해 알고하지 않습니다이로 변경합니다. 사용하고자하는 것은 $scope.$apply입니다.이 기능을 사용하면 Angular 외부에서 스코프를 변경할 수 있습니다.

$scope.stopRecording = function() { 

    video.onloadedmetadata = function() { 
     $scope.$apply(function(){ 
      $scope.videoEndPos = 10; 
     }); 

     // the value of the input does not change, but this still correctly outputs 10 
     console.log($scope.videoEndPos); 
    }; 

}; 
1

video.onloadedmetadata은 아마도 다이제스트 루프 이후까지 반환되지 않는 비동기 호출 일 수 있습니다.

$scope.stopRecording = function() { 

    video.onloadedmetadata = function() { 
     $scope.$apply(function() { 
      $scope.videoEndPos = 10; 
     }); 
    }; 
}; 
관련 문제