为什么data-ng-file-select不起作用?

时间:2017-02-03 15:45:40

标签: angularjs

我正在尝试上传文件。我有一个工作示例,它是这样的:

<div class="btn btn-default btn-fileinput">
    <span class="glyphicon glyphicon-upload"></span> <input
        type="file" id="fileUploadInput" name="files" multiple
        accept="text/xml" data-ng-file-select="uploadFiles($files)" style="width: 40px;">
</div>

我修改了一下并提出了这个:

<label class="btn btn-default btn-file">
    Upload 
    <input 
        type="file" 
        style="display: none;"
        name="files"        
        multiple                        
        data-ng-file-select="uploadModel($files)"
        >
</label>

<span data-ng-file-select="uploadModel($files)" class="btn btn-primary btn-lg" role="button">Test</span>

但是,uploadModel()函数未被调用:

$scope.uploadModel = function($files) {
    alert('Uploading ' + $files);
}

如何才能上传文件?

依赖关系:

    <!-- Dependencies -->
    <script src="bower_components/jquery/dist/jquery.min.js"></script>

    <script src="bower_components/angular/angular.min.js"></script>
    <script src="bower_components/angular-file-upload/dist/angular-file-upload.min.js"></script>
    <script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>

应用模式:

var emaApp = angular.module('emaApp', ['ui.bootstrap', 'angularFileUpload']);

1 个答案:

答案 0 :(得分:0)

如果是以下module,那么您应该将var ms = new System.IO.MemoryStream(); var sw = new System.IO.StreamWriter(ms); var csvOut = new CsvWriter(sw, new Configuration.CsvConfiguration() { Delimiter = ";", IgnoreReferences = true }); csvOut.WriteRecords(someCollection); // IMPORTANT LINE sw.Flush(); ms.Position = 0; return File(ms, "text/csv", "resultFile.csv"); 而不是nv-file-select与上传器对象结合使用。 data-ng-file-select不会采用任何类型的函数/回调,而是使用附加到上传器对象的各种钩子,例如nv-file-select,这将允许您在select /中的不同点执行操作上传过程。查看他们的API documentation似乎没有任何onAfterAddingFile指令,除非您创建了自定义指令。

否则,您可以创建一个自定义指令来监视对this等文件输入类型字段的更改。

<强> HTML

data-ng-file-select

<强> JS

<label class="btn btn-default btn-file">
    Upload 
    <input 
        type="file" 
        style="display: none;"
        name="files"        
        multiple                        
        nv-file-select 
        uploader="uploader" />
</label>