我想在触发S3中的事件时动态调整div的大小。
在以下代码中,我将progress
变量作为参数发送给updateProgress
函数。此功能在我的Angular Controller 的最高范围内。
s3.upload(params).on('httpUploadProgress', function(evt) {
var progress;
progress = Math.floor(evt.loaded * 100 / evt.total);
updateProgress(progress);
})
.send(function(err, res, data) {
if (err) {
growl.error("We're having trouble uploading your image. Please try again!", {title: 'Whoops!', ttl: 5000});
console.log('Error uploading' + err);
} else {
imgLocation = res.Location;
postToFirebase(imgLocation);
}
});
这是我的updateProgress函数
function updateProgress(percent) {
$scope.progressBar = {
'width': percent + '%'
}
}
的HTML
<div ng-style="progressBar" class="shot__image--post__progress"></div>
我可以成功console.log AWS事件和进度值。但是,当我上传图像时,宽度永远不会改变。
最佳答案
在此主题的评论中,请Phil回答。
解决方案是简单地在$scope.$apply()
fn中调用updateProgress
。