2017-03-22 64 views
1

我想讀取文件並將讀取的內容存儲在組件的私有變量中。到目前爲止,我無法訪問組件的屬性,因爲我得到this的推薦爲FileReader而非組件。Angular2 - 從屬性的方法訪問組件屬性

我的代碼是這樣的

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. 

} 

那麼,如何訪問一個像這樣的方法內部組件的屬性?哪個是FileReader實例的方法,不是Component。

回答

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

您可以使用arrow function保護組件上下文:

myReader.onloadend = (e) => { 
     //Do something here with myReader.result 

    }