Angular2 - 从属性方法访问组件属性

时间:2017-03-22 12:57:38

标签: javascript angular typescript filereader typescript2.0

我正在尝试读取文件并将读取的内容存储在Component的私有变量中。到目前为止,我无法访问组件的属性,因为我将this引用为FileReader而不是组件。

我的代码就像这样

private ReadTheFile(file:File) {

    var myReader: FileReader = new FileReader();
    myReader.readAsText(file);
    myReader.onloadend = function (e) {

        //Do something here with myReader.result

    }

    //Get the modified result here, and assign it to public property.

}

那么,如何在这样的方法中访问Component属性呢?哪个是FileReader实例的方法,而不是Component。

2 个答案:

答案 0 :(得分:2)

不要在类中使用关键字function。这会改变你注意到的this上下文。使用箭头功能

private ReadTheFile(file:File) {

    var myReader: FileReader = new FileReader();
    myReader.readAsText(file);
    myReader.onloadend = (e) => {

        //Do something here with myReader.result

    }

    //Get the modified result here, and assign it to public property.

}

答案 1 :(得分:1)

您可以使用arrow function来保留组件上下文:

Android Studio