Angularjs 如何在Angular JS中开始上传文件?
我使用Angular JSAngularjs 如何在Angular JS中开始上传文件?,angularjs,Angularjs,我使用Angular JSAngular文件上传。 我将initFileUploader代码从控制器移动到工厂方法: .factory('UploadFilesHash', ['FileUploader', function (FileUploader) { var uploader; return { uploadInit: function (data){ uploa
Angular文件上传
。
我将initFileUploader
代码从控制器移动到工厂
方法:
.factory('UploadFilesHash', ['FileUploader', function (FileUploader) {
var uploader;
return {
uploadInit: function (data){
uploader = new FileUploader({
url: '/upload/',
formData: data,
alias: 'files',
autoUpload: true
});
// FILTERS
uploader.filters.push({
name: 'imageFilter',
fn: function (item /*{File|FileLikeObject}*/, options) {
var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|';
return '|jpg|png|jpeg|bmp|gif|'.indexOf(type) !== -1;
}
});
// CALLBACKS
uploader.onWhenAddingFileFailed = function (item /*{File|FileLikeObject}*/, filter, options) {
//console.info('onWhenAddingFileFailed', item, filter, options);
};
});
}
所以,在控制器中,我注入这个工厂并调用init函数:
控制器:
$scope.startFromView = function (){
UploadFilesHash.uploadInit(data);
}
<span ng-click="startFromView()">
<input type="file" nv-file-select="" uploader="uploader" multiple />
</span>
HTML:
$scope.startFromView = function (){
UploadFilesHash.uploadInit(data);
}
<span ng-click="startFromView()">
<input type="file" nv-file-select="" uploader="uploader" multiple />
</span>
所以,问题是我调用函数
startFromView()
,然后就没有文件上传了。早些时候,此代码在控制器和所有工作中。您工厂中的var uploader
与您在输入字段中提供的$scope.uploader
不对应。好的,我需要从uploadefileshash
返回$scope.uploader
的变量uploader
?我尝试过了,得到错误:“Uploader”必须是FileUploader的实例