2017-10-02 6 views
0

녹아웃 변경 이벤트를 사용하여 여러 csv 파일을 업로드하려고합니다. 처음에는 변경 기능이 작동하고 값은 뷰 모델에 기록됩니다. 문제는 녹아웃 변경 이벤트가 발생하지 않는 두 번째 CSV 파일을 업로드하려고 할 때입니다. 변경 기능을 처음부터 다시 시작하는 방법이 있습니까?녹아웃 변경 이벤트 기능

<input id="uploadFile" type="file" multiple="multiple" data-bind="event: { change: PO.fileUploadChange }"/> 

export function fileUploadChange(data, evt): void { 
    ko.utils.arrayForEach(evt.target.files, function (file) { 

     var reader = new FileReader(); 
     reader.onload = LoadCSVData; 

     reader.readAsText(evt.target.files.item(0)) 
     model.quickEntryModel.files.push(evt.target.files.item(0)); 

     var input = document.getElementById('uploadFile'); 
     if (input != null) 
      document.getElementById('uploadFile').outerHTML = input.outerHTML; 
    }) 


} 

답변

1

문제는 마지막 줄에 있습니다. 네가 뭘하려고하는지 모르겠다.하지만 네가 입력 내용을 지우고 있다고 가정하고있어.

export function fileUploadChange(data, evt): void { 
    ko.utils.arrayForEach(evt.target.files, function (file) { 

     var reader = new FileReader(); 
     reader.onload = LoadCSVData; 

     reader.readAsText(evt.target.files.item(0)) 
     model.quickEntryModel.files.push(evt.target.files.item(0)); 
    }); 

    var input = document.getElementById('uploadFile'); 
    if (input != null) 
     input.value = ""; 
} 

Here's a fiddle

: 당신은 arrayForEach 루프 외부로 이동해야합니다