我想显示文件上传(文件阅读器)的进度。
这是我的HTML:
<md-progress-linear id="file-progress-indicator" md-mode="determinate" value="{{progress}}"></md-progress-linear>
这是我的指示:
angular.module('image.directives').directive('edFileUploader', ['$parse', '$mdDialog', '$mdBottomSheet', '$timeout', 'toastr', function($parse, $mdDialog, $mdBottomSheet, $timeout, toastr) {
return {
restrict: 'A',
link: function($scope, el, attrs) {
var setter = $parse(attrs.edFileUploader)($scope);
$(el[0]).on('change', function(e) {
var reader = new FileReader();
if (setter) {
setter(event.target.result, el);
if (typeof attrs.edCloseAfter !== 'undefined') {
$mdBottomSheet.hide();
}
}
};
reader.onprogress = function(data) {
if (data.lengthComputable) {
var progress = parseInt(((data.loaded / data.total) * 100), 10);
// $scope.progress = progress;
}
}
if (e.target.files[0] != undefined) {
reader.readAsDataURL(e.target.files[0]);
$scope.loading = false;
el.next().removeClass('loading');
$scope.done = true;
} else {
$scope.loading = false;
el.next().removeClass('loading');
$scope.done = true;
}
});
}
}
}]);
如何从reader.onprogress传递变量进度,以便进度条按预期工作?
答案 0 :(得分:0)
请参阅:thisAngle + sliceDegrees
这里我们使用该方法从direcctive发送数据到控制器。 这里测试是元素指令,属性是 data-method =&#34; ctrlFn&#34;
可能有帮助,