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

FileReader无法使用AngularJS正确加载文件

叶稳
2023-03-14
问题内容

我正在尝试将CS​​V文件加载到AngularJS中,以便可以对内容进行一些操作。它不是我想要的那样工作。为了测试它是否正确加载,我将其加载到文本区域中以查看内容。

当我加载文件时,它说它已正确加载,但在加载第二个CSV文件之前似乎没有触发onload()事件,在这种情况下,FIRST文件显示在文本区域中。

HTML:

<div>
  <input ng-model="csv"
            onchange="angular.element(this).scope().fileChanged()"
            type="file" accept=".csv" id="fileInput"/>
</div>
<br/>
<div>
  <textarea ng-model="csvFile" readonly="true" style="width:99%; height:500px" disabled></textarea>
</div>

JS:

$scope.fileChanged = function() {

  $scope.$apply(function() {
      var csvFileInput = document.getElementById('fileInput');
      var reader = new FileReader();
      var csvFile = csvFileInput.files[0];
      reader.onload = function(e) {
          $scope.csvFile = reader.result;
      };
      reader.readAsText(csvFile);
  });
};

当我将其放入JSFiddle时,该文件根本不会出现在textarea中。我是JSFiddle的新手,所以我不知道为什么会这样。

任何帮助将不胜感激。


问题答案:

重新排列代码的某些行,希望注释足够说明

$scope.fileChanged = function() {

  // define reader
  var reader = new FileReader();

  // A handler for the load event (just defining it, not executing it right now)
  reader.onload = function(e) {
      $scope.$apply(function() {
          $scope.csvFile = reader.result;
      });
  };

  // get <input> element and the selected file 
  var csvFileInput = document.getElementById('fileInput');    
  var csvFile = csvFileInput.files[0];

  // use reader to read the selected file
  // when read operation is successfully finished the load event is triggered
  // and handled by our reader.onload function
  reader.readAsText(csvFile);
};

参考:MDN的FileReader



 类似资料:
  • 我有麻烦尝试导入一个woff2字体文件在一个简单的测试网页中使用。 所有内容都在一个名为'test'的文件夹中,@font-face src引用了我要测试的本地.woff2字体文件。不幸的是,标题的字体没有显示正确的字体,除非我使用.ttf字体文件。 我觉得我好像在某个地方犯了一个简单的格式错误,但我似乎不知道我错在哪里。感谢任何帮助。

  • 我正在学习Angularjs,以及如何使用templateUrl加载模板。 我有一个简单的指令: 我尝试使用这样的指令: 一旦我打开我的页面,我得到了这个例外: 我没有尝试跨域加载模板文件(te.html与default.html位于同一文件夹中)。 谁能帮我弄清楚发生了什么事?

  • 问题内容: 我只是在学习Angularjs,以及如何使用templateUrl加载模板。 我有一个简单的指令: 我尝试使用这样的指令: 打开页面后,出现以下异常: 我没有确定要跨域加载模板文件(te.html与default.html处于同一折叠)。 有人可以帮我弄清楚发生了什么吗? 问题答案: 问题是您正在使用文件协议(使用协议)运行示例,并且许多浏览器(Chrome,Opera)在使用协议时都

  • [FileLoadException:无法加载文件或程序集“System.Web.MVC”或其依赖项之一。所找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040)] [FileLoadException:无法加载文件或程序集“System.web.mvc,version=5.2.3.0,Culture=Neutral,PublicKeyToken=31BF38

  • 我正在尝试使用owlapi彻底的net beans加载.owl文件,以插入个人及其数据属性(使用owlapi文档中列出的代码),但它无法加载文件,但当我将.owl文件转换为.rdf格式时,它被成功加载,并且能够插入所需的数据。我需要操作.owl文件而不是.rdf格式 下面是我用来加载.owl而没有成功的代码 但是当我使用了如下所示的rdf fromat时,它就成功地加载了 那么我如何克服这个问题并

  • 如何确认我的JAR文件已加载到Coldfusion中?我在CF10上。 我目前得到这个错误: 我的网站结构如下: 在我的申请中。cfc,我有以下代码: 这是我调用一切的代码: 更新#1 我在检查administor时发现了设置摘要,其中列出了服务器Java类路径。我添加了jar文件的位置并重新启动了服务器。即使路径存在于Administrator中的类路径中,我仍然会遇到相同的错误。 更新2 添加