Подтвердить что ты не робот

Обновить $scope изнутри callback в angularJS

У меня есть этот контроллер, и я хотел бы обновить $scope.progress из функции обратного вызова функции. Я пробовал использовать $rootScope и $scope.apply(), но я не могу заставить его работать. Что-то мне не хватает?

progressupdate - это переменная, возвращаемая событием. код не совсем такой. Я сделал это очень просто, чтобы показать структуру.

app.controller('player', function($scope) {

    var show = function(url) {
        function(err, showOK) {
            if (err) {
                console.log(err);
            } else {
                showOK.on('listening', function(){
                     $scope.progress = progressupdate;
                });
            }
        });
    }

    show(url);

});

Я запускаю эту функцию неправильно внутри контроллера? Должен ли я использовать что-то вроде этого?

 $scope.show = function(url)...etc
4b9b3361

Ответ 1

Я не вижу функцию $apply выше script и progressupdate. Попробуйте $apply после набора или установите его внутри $apply:

showOk.on('listening', function(){
   $scope.$apply(function(){
      $scope.progress = progressupdate;
   });
});

или

showOk.on('listening', function(){
   $scope.progress = progressupdate;
   $scope.$apply();
});

Рекомендуется использовать первый метод.