gpt4 book ai didi

angular - 从 Angular 2 中的 FileReader 获取值

转载 作者:搜寻专家 更新时间:2023-10-30 21:15:59 25 4
gpt4 key购买 nike

我有以下加载文件并将其内容绑定(bind)为字符串的组件

    export class NgCsvComponent {

@Input() csv: any;

@Output() csvChange: any = new EventEmitter();

public localCsv : any = '';

constructor() { }

changeListener($event): void {
this.readFile($event.target);
}

readFile (inputValue : any) : void {
let reader = new FileReader (),
file : File = inputValue.files[0];
reader.readAsText(file);
reader.onload = this.onLoadCallback;
}

onLoadCallback (event) {
this.csvChange.emit(event.target["result"]);
}
}

问题是 this.csvChangeonLoadCallback 中未定义,所以我如何将结果传递给组件中的某个变量?

我正在搜索其他类似的 question但永远不会在 onloadCallback 函数之外得到结果

最佳答案

问题是当你这样做时上下文会丢失:

reader.onload = this.onLoadCallback;

一种解决方案是:

reader.onload = (e: Event) => {
this.onLoadCallback(e);
}

另一个是:

reader.onload = this.onLoadCallback.bind(this);

还有一个是:

onLoadCallback = (event) => {
this.csvChange.emit((event.target as FileReader).result);
}

底线。确保 this 上下文始终保留在您的 class 中。

关于angular - 从 Angular 2 中的 FileReader 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39979809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com