Angularjs 如何在Angular JS中开始上传文件?

Angularjs 如何在Angular JS中开始上传文件?,angularjs,Angularjs,我使用Angular JSAngular文件上传。 我将initFileUploader代码从控制器移动到工厂方法: .factory('UploadFilesHash', ['FileUploader', function (FileUploader) { var uploader; return { uploadInit: function (data){ uploa

我使用Angular JS
Angular文件上传
。 我将init
FileUploader
代码从控制器移动到
工厂
方法:

.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的实例