Javascript $scope变量拒绝更改wavesurfer';s函数处理程序

Javascript $scope变量拒绝更改wavesurfer';s函数处理程序,javascript,angularjs,variables,scope,Javascript,Angularjs,Variables,Scope,大家好,下面是我的代码示例,我正在尝试让$scope.icon在wavesurfer的函数处理程序中更新为新值,但无论我做什么,它似乎都不适用于我。有人对此有想法吗 msp.controller('Controller2', function($scope, $http, $rootScope) { $scope.message_id = $rootScope.message_id; $scope.message_title = $rootScope.message_title;

大家好,下面是我的代码示例,我正在尝试让$scope.icon在wavesurfer的函数处理程序中更新为新值,但无论我做什么,它似乎都不适用于我。有人对此有想法吗

msp.controller('Controller2', function($scope, $http, $rootScope) {
    $scope.message_id = $rootScope.message_id;
    $scope.message_title = $rootScope.message_title;  
    $scope.message_date = $rootScope.message_date;
    $scope.message_audio = $rootScope.message_audio;
    $scope.message_image = $rootScope.message_image;
    $scope.icon = "fa fa-spinner fa-spin";
    var id = $scope.message_audio;
    var wavesurfer = WaveSurfer.create({
        container: '#waveform',
        waveColor: '#fff',
        progressColor: 'red',
        hideScrollbar: true,
        height: 100
    });
    $http({
        method: 'GET',
        url: 'http://customurl/app/messages.php',
        params: {id: id}
    }).then(function success(response) {
        $scope.message_audio = response.data;
        wavesurfer.load($scope.message_audio);
        wavesurfer.on('ready', function() {
            $scope.icon = "ti-control-skip-forward";
        })
    }, function error(response) {
        $scope.message_audio = response.data;
    });
    $scope.fn_play = function() {
        wavesurfer.playPause();
    }
});

尝试显式地告诉AngularJS值已更新,方法是将其包装在
$scope.$apply()
块中,如下所示:

wavesurfer.on('ready', function() {
    $scope.$apply(function() {
        $scope.icon = "ti-control-skip-forward";
    }
})

这真是太棒了。它工作得很好。莱克斯,我都感谢不了你了。我很感激。