我有这个控制器,我想从函数回调中更新$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
答案 0 :(得分:35)
我在上面的脚本上看不到$apply
函数,并且进行了更新。设置后尝试$apply
,或在$apply
内设置:
showOk.on('listening', function(){
$scope.$apply(function(){
$scope.progress = progressupdate;
});
});
或
showOk.on('listening', function(){
$scope.progress = progressupdate;
$scope.$apply();
});
建议使用第一种方法。