我目前正在使用ng-flow来执行文件上传.看来,选择文件的默认操作是立即上传.我想覆盖这一点,以便文件被选中,只有按钮点击上传.也许我在误导文档,但到目前为止我还有以下几点:
<div flow-init="{target: '/upload'}" flow-files-submitted="$flow.upload()" flow-file-success="$file.msg = $message"> <input type="file" flow-btn/> Input OR Other element as upload button <span class="btn" flow-btn>Upload File</span> <table> <tr ng-repeat="file in $flow.files"> <td>{{$index+1}}</td> <td>{{file.name}}</td> <td>{{file.msg}}</td> </tr> </table> </div>
这似乎正常工作,我可以看到网络请求出来.我找到了flow.js upload file on click,并尝试按照建议的答案,但是$flow在各自的功能中是未定义的.
解决方法
首先,当用户选择文件(误导名称)时,会触发流文件提交的事件.因此,当您为其分配$flow.upload()时,您可以在选择文件后立即上传.
第二件事是在控制器中获取$flow对象.我想到了两种方式:
A.按照说明,你必须使用flow-name属性:
<div flow-init flow-name="obj.flow">
然后,您可以参考$scope.obj.flow属性中的$flow,您可以在控制器中的任何位置使用$scope.obj.flow.upload()方法.
B.将您的“上传”按钮放在流指令块(作为具有flow-init属性的元素的后代),并使用指令范围的$flow属性作为ng-click中的参数,例如:
<button type="button" ng-click="myUploadMedhot($flow)">Upload</button>
并在myUploadMethod(param)里面调用param.upload().