无法读取 Angular 中的 JSON 文件
Can't read JSON file in Angular
我想从文件系统中读取一个 JSON 文件,但我不能让它工作。
我发现这个解决方案似乎是我需要的:
但是我得到两个错误:
参数 'event' 在 uploadFile(event) {
上隐式具有 'any' 类型
和
对象可能是 'null' console.log(reader.result.toString());
这是我的代码:
component.html:
<form name="JSONform" (ngSubmit)="fJSON.form.valid && decryptJSON()" #fJSON="ngForm" novalidate>
<input type="file" name="files" (change)="uploadFile($event)" />
<div class="buttons">
<div class="decrypt">
<button class="btn btn-primary" type="submit">Decrypt</button>
</div>
</div>
</form>
component.ts:
uploadFile(event) {
if (event.target.files.length !== 1) {
console.error('No file selected');
} else {
const reader = new FileReader();
reader.onloadend = (e) => {
console.log(reader.result.toString());
// handle data processing
};
reader.readAsText(event.target.files[0]);
}
}
我不知道我错过了什么。
提前谢谢你。
你没有遗漏任何东西。这些错误是 TSLINT 或 TypeScript 错误。只需检查一下:
// Tell TS that you mean it as any (or you can find the actual event d.ts
// Use the ? operator to check for nulls (or do an if( reader.result != null)
// before calling toString()
uploadFile(event: any) {
if (event.target.files.length !== 1) {
console.error('No file selected');
} else {
const reader = new FileReader();
reader.onloadend = (e) => {
console.log(reader.result?.toString());
// handle data processing
};
reader.readAsText(event.target.files[0]);
}
}
我想从文件系统中读取一个 JSON 文件,但我不能让它工作。
我发现这个解决方案似乎是我需要的:
但是我得到两个错误:
参数 'event' 在 uploadFile(event) {
和
对象可能是 'null' console.log(reader.result.toString());
这是我的代码:
component.html:
<form name="JSONform" (ngSubmit)="fJSON.form.valid && decryptJSON()" #fJSON="ngForm" novalidate>
<input type="file" name="files" (change)="uploadFile($event)" />
<div class="buttons">
<div class="decrypt">
<button class="btn btn-primary" type="submit">Decrypt</button>
</div>
</div>
</form>
component.ts:
uploadFile(event) {
if (event.target.files.length !== 1) {
console.error('No file selected');
} else {
const reader = new FileReader();
reader.onloadend = (e) => {
console.log(reader.result.toString());
// handle data processing
};
reader.readAsText(event.target.files[0]);
}
}
我不知道我错过了什么。 提前谢谢你。
你没有遗漏任何东西。这些错误是 TSLINT 或 TypeScript 错误。只需检查一下:
// Tell TS that you mean it as any (or you can find the actual event d.ts
// Use the ? operator to check for nulls (or do an if( reader.result != null)
// before calling toString()
uploadFile(event: any) {
if (event.target.files.length !== 1) {
console.error('No file selected');
} else {
const reader = new FileReader();
reader.onloadend = (e) => {
console.log(reader.result?.toString());
// handle data processing
};
reader.readAsText(event.target.files[0]);
}
}