Обновить $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
Ответы
Ответ 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();
});
Рекомендуется использовать первый метод.