title: FileReader onload not within controller scope Angular 2
body: <p>I'm trying to send a file in chunks to be saved in a database and I'm using FileReader.readAsArrayBuffer() to trigger the onload event.  My issue comes into play once I'm in the onload event, the scope of 'this' only contains the FileReader properties and nothing from my class.  Even variables defined just before the onload event are not accessible.  I was thinking I could try to pass the value of 'this' through as a parameter so I could access my functions, service and variables but I haven't had any success thus far. Has anyone tried anything similar or know if maybe I've reached some sort of limitation? </p>
  
  <p>Thank you for any help</p>
  
  <p>Here's my component class</p>
  
  <pre><code>export class UploadComponent {
  title = 'Upload File';
  fileData = null;
  files = null;
  fs;
  @Input()
  showUpload: boolean;
  
  constructor(fileService: FileService) {
      this.fs = fileService;
  }
  
  uploadFile() {
      let temp = document.getElementById("fileToUpload");
      let fr = new FileReader();
      let file = temp.files[0];
      let fb = fr.readAsArrayBuffer(file);
  
      fr.onload = function(data) {
          this.fs.beginFileUpload(file.name, function(data) {
              let chunkSize = 200000;
              let startIndex = 0;
              let stopIndex = chunkSize;
              let file = data.target.result;
              let fileChunk = null;
  
              while (startIndex &lt; file.length) {
                  if (stopIndex &lt; length) {
                      fileChunk = file.subArray(startIndex, stopIndex);
                      startIndex = stopIndex;
                      stopIndex += chunkSize;
                  }
                  else {
                      fileChunk = file.subArray(startIndex);
                      startIndex = stopIndex;
                  }
                  //fs.uploadChunk(fileChunk);
              }
          });
  
      }
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p>my component template</p>
  
  <pre><code>&lt;input type="file" [(value)]="fileData" [(files)]="files" id="fileToUpload" /&gt;
  &lt;input type="button" (click)="uploadFile()" value="Upload File" /&gt;
  </code></pre>