当前位置: 首页 > 面试题库 >

AngularJs:如何检查文件输入字段中的更改?

郦兴德
2023-03-14
问题内容

我是新手。每当此字段发生“更改”时,我都试图从HTML“文件”字段中读取上载的文件路径。如果我使用“ onChange”,则可以使用,但是当我使用“ ng-
change”以角度的方式使用时,则无法使用。

<script>
   var DemoModule = angular.module("Demo",[]);
   DemoModule .controller("form-cntlr",function($scope){
   $scope.selectFile = function()
   {
        $("#file").click();
   }
   $scope.fileNameChaged = function()
   {
        alert("select file");
   }
});
</script>

<div ng-controller="form-cntlr">
    <form>
         <button ng-click="selectFile()">Upload Your File</button>
         <input type="file" style="display:none" 
                          id="file" name='file' ng-Change="fileNameChaged()"/>
    </form>  
</div>

fileNameChaged() 从不调用。Firebug也不会显示任何错误。


问题答案:

不支持文件上传控件

https://github.com/angular/angular.js/issues/1375

<div ng-controller="form-cntlr">
        <form>
             <button ng-click="selectFile()">Upload Your File</button>
             <input type="file" style="display:none" 
                id="file" name='file' onchange="angular.element(this).scope().fileNameChanged(this)" />
        </form>  
    </div>

代替

 <input type="file" style="display:none" 
    id="file" name='file' ng-Change="fileNameChanged()" />

你能试一下吗

<input type="file" style="display:none" 
    id="file" name='file' onchange="angular.element(this).scope().fileNameChanged()" />

注意:这要求Angular应用程序始终处于调试模式。如果禁用了调试模式,则此功能在生产代码中将不起作用。

并且在您的功能中进行更改,而不是

$scope.fileNameChanged = function() {
   alert("select file");
}

你能试一下吗

$scope.fileNameChanged = function() {
  console.log("select file");
}

以下是文件上传的一个工作示例,其中拖放文件上传可能会有所帮助
http://jsfiddle.net/danielzen/utp7j/

角度文件上传信息

ASP.Net中AngularJS文件上传的URL

http://cgeers.com/2013/05/03/angularjs-file-
upload/

AngularJs本机多文件上传以及NodeJS的进展

http://jasonturim.wordpress.com/2013/09/12/angularjs-native-multi-file-
upload-with-progress/

ngUpload-AngularJS服务,用于使用iframe上传文件

http://ngmodules.org/modules/ngUpload



 类似资料:
  • 问题内容: 我正在使用将数据放置到API的编辑表单(user.html),但是我想避免将所有数据放置在表单中。我只想输入已更改的项目。 我已经看到在处理表单时使用肮脏和原始的方法,但这适用于表单中的任何更改。我也看到了ng- change的用法,但是我不想触发对一个元素进行更改的动作,只是表示更改后的元素应包含在PUT中。 有人找到一种仅表示已更改的输入字段的方法吗? 问题答案: 如果将输入与属性

  • 我正在尝试检查文本字段何时更改,也相当于用于text View-的函数,到目前为止我已经这样做了: 哪种方法有效,但是一旦按下文本字段,,我希望仅在实际键入文本时才启用它?

  • 我就是这样保存航班的: 运行上面的第一个方法后的输出是如果我输入了除1号以外的任何ID 尽管我输入了与航班ID匹配的ID。 程序运行良好,我只是不知道哪里是我的错误。

  • 我还担心这会增加数据库的读/写次数。 有人能帮帮我吗?提前致谢

  • 问题内容: 我正在将一个控制台应用程序转换为使用Swing的应用程序。目前,我希望我的程序执行与此类似的操作,如何通过使用或类似方法实现此目标? 简而言之; 在用户在文本字段中输入内容并按Enter之前,如何保持程序的执行。 问题答案: 更新: 因此,您要等待用户从GUI输入内容。这是可能的,但由于GUI在另一个线程中运行,因此需要进行 同步 。 因此,步骤如下: 创建一个“ holder”对象,

  • 问题内容: 我有一个具有文件上传功能的表单,如果用户尝试上传的文件太大,我希望能够有一些不错的客户端错误报告,是否有一种方法可以使用jQuery检查文件大小,或者纯粹是在客户端上还是以某种方式将文件发布回服务器以进行检查? 问题答案: 您实际上没有访问文件系统的权限(例如,读取和写入本地文件),但是,由于HTML5FileApi规范,您确实可以访问某些文件属性,并且文件大小是其中之一。 对于下面的