Javascript 从内部事件回调更改绑定角度变量

Javascript 从内部事件回调更改绑定角度变量,javascript,angularjs,Javascript,Angularjs,我试图在加载视频时更改输入字段的值。以下是相关代码: 这项工作: $scope.stopRecording = function () { // value of the input changes as expected $scope.videoEndPos = 10; }; 这并不重要 $scope.stopRecording = function () { video.onloadedmetadata = function() { $scope

我试图在加载视频时更改输入字段的值。以下是相关代码:

这项工作:

$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可能是一个异步调用,在摘要循环之后才会返回。将其更改为:

$scope.stopRecording = function () {

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

video.stopRecording
发生在角度宇宙之外,因此它不知道变化。您需要使用的是,它允许您从外部执行对范围的更改

$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);
    };

};