【发布时间】:2016-11-20 14:50:55
【问题描述】:
我有一个在控制器中上传文档的代码,我希望将它移动到服务中,以便其他控制器可以使用它。
"use strict";
angular.module('myApp')
.service('uploadDocumentService', ['Upload', function (Upload) {
this.UploadDocument = function ($file, data) {
Upload.upload({
url: '/uploadDocuments',
file: $file,
data: data
}).progress(function (evt) {
var progressReport = {};
progressReport.progressVisible = true;
progressReport.percentage = Math.round(evt.loaded / evt.total * 100);
return progressReport;
}).success(function (data, status, headers, config) {
var fileUploaded = {};
fileUploaded.id = data.id;
fileUploaded.name = data.fileName;
return fileUploaded;
});
}
}]);
我无法在我的控制器中捕获 .progress 事件
uploadDocumentService.UploadDocument($file, 'Path')
.progress(function (progressReport) {
//Some code
}).success(function (data) {
//Some code
});
不断收到错误无法读取未定义的属性“进度” 在 m.$scope.uploadDocuments 关于如何解决这个问题的任何提示,我需要在服务中注册进度事件吗?
【问题讨论】:
-
请确认您的控制器是否有服务-uploadDocumentService..angular.module('myApp').controller("MyCtrl", function($scope, uploadDocumentService)
-
我认为您的控制器函数中缺少 uploadDocumentService 参数,这导致了未定义的错误。希望这对您有用:)
标签: angularjs angular-services angular-controller