javascript - 如何在 Angular 中读取 JSON 文件?

标签 javascript angularjs json fabricjs filereader

我正在尝试从本地磁盘加载 JSON 文件并使用其中的数据填充 FabricJS Canvas 。我在从文件中获取数据时遇到问题。

这就是我到目前为止所拥有的。

app.html

<input type="file" accept=".json" id="fileInput" (change)="loadFile($event)"/>

app.ts

  loadFile(event) {
const eventObj: MSInputMethodContext = <MSInputMethodContext> event;
const target: HTMLInputElement = <HTMLInputElement> eventObj.target;
const files: FileList = target.files;
this.file = files[0];

const reader = new FileReader();
reader.readAsText(this.file, 'utf8');

this.canvas.loadFromJSON(this.file, this.canvas.renderAll.bind(this.canvas), function (o, object) {
  console.log(o, object);
});

对于如何实现这项工作有什么想法吗?

最佳答案

FileReader 有一个异步 API。

您必须注册 onload 事件的回调才能获取数据。

 loadFile(event) {
const eventObj: MSInputMethodContext = <MSInputMethodContext> event;
const target: HTMLInputElement = <HTMLInputElement> eventObj.target;
const files: FileList = target.files;
this.file = files[0];

const reader = new FileReader();
reader.readAsText(this.file, 'utf8');
reader.onload = function() {
  this.canvas.loadFromJSON(reader.result, this.canvas.renderAll.bind(this.canvas), function (o, object) {
  console.log(o, object);
});
}

关于javascript - 如何在 Angular 中读取 JSON 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46019003/

相关文章:

Javascript 多个 OR 在 if 条件中使用 for 循环

javascript - 使用 Angular.ui Datepicker 没有显示日期

c++ - 在大型 Json 文件中查找文本

JavaScript 将对象数组转换为二维数组

javascript - 在 HTML/CSS/javascript 中,单击鼠标并将鼠标悬停在子选项卡内的选项卡上时,代码无法按预期工作

javascript - jQuery:在事件处理程序的无名函数中调用函数

javascript - 为什么 IE 无法关闭 "Cancel"按钮上的选项卡单击 c#

javascript - Angularjs - 使用 "this"关键字从其范围之外更新 ng-repeat 中的各个值

angularjs - 如何在客户端和服务器之间共享Javascript业务规则?

json - 将 JSON 转换为 PowerShell 对象并将 PowerShell 转换回 JSON