首页 > 解决方案 > 在 stingify 文件后调用服务函数。角

问题描述

我需要使用字符串化操作产生的字符串从服务中调用一个函数。但是当我尝试将其称为“this.xmlservice.parsexml”时,它表示此功能不适用于 FileReader。我不知道我什么时候调用 FileReader 类。

HTML:

<input type="file" id="upload" style="display:none" (change)="handleMTPInput($event.target.files)">

JS:

constructor(private fileService: fileService, private xmlservice: XMLservice, private _http: HttpClient, private libservice: libraryService) { }

handleMTPInput(files: FileList) {
if (files.length === 0) {
  console.log('No file is selected');
  return;      
}
var reader = new FileReader();
reader.onload = function (event) {
  this.xmlservice.parsexml(event.target.result[0]);
};
reader.readAsText(files[0]);  
}

标签: javascriptangular

解决方案


请改用箭头函数,以便您的this上下文是 JS 代码中的类,如下所示:

constructor(private fileService: fileService, private xmlservice: XMLservice, private _http: HttpClient, private libservice: libraryService) { }

handleMTPInput(files: FileList) {
if (files.length === 0) {
  console.log('No file is selected');
  return;      
}
var reader = new FileReader();
reader.onload = (event) => this.xmlservice.parsexml(event.target.result[0]);

reader.readAsText(files[0]);  
}

推荐阅读